编程计算下式的值,直到末项与1差的绝对值小于0.000001.输出要求:直接输出结果不要有多余的符号。

#include<stdio.h>#include<math.h>int main(){ float sum=0.0,a=2,b=1,c,d; while(d/c-1>=0.000001){ d=a*a; a=a+2; c=b*(b+2); b=b+2; sum=sum+d/c; } printf("%f",sum); return 0;}请问代码有什么问题吗,机器一直判定不过。

以上代码中,要求0.000001这种精度的计算需要采取double类型,最主要的是d和c在首次循环判断时未经初始化,代码修改如下:

#include<stdio.h>
int main(){ 
double sum=0.0,a=2,b=1,c,d; 
do{
d=a*a; 
a=a+2; 
c=b*(b+2); 
b=b+2; 
sum=sum+d/c; 
}while(d/c-1>=0.000001);
printf("%f",sum); 
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答