#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;
}
温馨提示:答案为网友推荐,仅供参考