void main()
{
int n,i;
printf("enter number");
scanf("%d",&n);
float s=0;
for(i=1;i<=n;i++)
{
s=s+(1/i);
}
printf("sum is %f",s);
}
我得到的输出为 1.00。为什么?
最佳答案
试试这个......
void main()
{
int n,i;
printf("enter number");
scanf("%d",&n);
float s=0;
for(i=1;i<=n;i++)
{
s=s+(1.0/i);
}
printf("sum is %f",s);
}
如果有 int/float 则预期结果将为 int。如果你想要精确的浮点结果,那么你必须使 float/float
关于c++ - 错误是什么?Q-确定并打印给定 n 值的以下谐波级数之和。(1+1/2+1/3+........+1/n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53777778/