各位大佬下面输出的为什么不对,想请教一下 C语言用循环计算Ss=2/1*2/3+4/3*4/5+...2020/2019*2020/2021?

#include<stdio.h>
main()
{
int i;
double s;
s=0;
for(i=2;i<=2020;i=i+2)
s=s+i/(i-1)*i/(i+1)*1.0;
printf("s=%0.4lf\n",s);
}

需要转换整数到浮点数,不然除出来的都是整数
s=s+(float)i/(i-1)*(float)i/(i+1);追问

这个答案和题目给出的答案不一样,题目给的答案是12.4567

追答

那不是答案,是输出形式。

因为加的每一项都不小于1,结果不可能只有12点多。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-15
i是整形的,i/(1+1),结果一定是0,所以不对!要想算精确,就在分子上乘上1.0,1.0*i/(i-1)*i/(i+1)
第2个回答  2020-06-13

#include <stdio.h>

main()

{

    int i;

    double s;

    s = 0;

    for (i = 2; i <= 2020; i = i + 2)

        s = s + (double)i / (i - 1) * i / (i + 1);

    printf("s=%0.4lf\n", s);

}

追问

感谢感谢,是我的理解错了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网