#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
double sum=0.0;
scanf("%d",&n);
for (i=1;i<=n;i++){
sum=sum+1/i;
}
printf("%.6f",sum);
return 0;
}
以上程式輸出一直是1.000000
請問以上程式哪里出錯了?
uj5u.com熱心網友回復:
i是int,所以1/i被轉成int,i大于1時int結果就是0所以改成
sum=sum+1.0/i //1.0是double,就算結果就不再是int了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/171393.html
標籤:C語言
