不清楚有哪里忽略了小数点,结果可能会不准确?

题目在这

img


这是我写的代码

img


然后是运行结果

img


但运行结果有一点错
c语言

img


可能是忽略了哪一个东西

供参考:

#include <stdio.h>
int main()
{
    int i,a,b;
    double s;
    for (i = 0,a = 2,b = 1,s = 0;i < 20;i++){
        s += a * 1.0 / b;
        a += b;
        b = a - b;
    }
    printf("%f", s);
    return 0;
}

float改成double,最后printf("%.6lf",sum);
float精度不够,输出指定6位小数,这样会四舍五入。

#include <stdio.h> 
#define n 20 //求解项数
int main()
{
    int i;//循环变量
    double a=2,b=1;//a,b分别为某项的分子、分母
    double  sum=0;
    double temp;//临时变量
    for (i=1;i<=n;i++)
    {
        sum+=a/b;
        temp=a;//记录前一项分子
        a=a+b;//前一项分子与分母之和为后一项分子
        b=temp;//前一项分子为后一项分母
   }
   printf("前%d项之和为:sum=%9.7f\n",n,sum);
   return 0;
}

如果问题解决请点击一下采纳谢谢