大一c语言,vc6.0,程序无报错但是打印黑屏

题目是求pi/4的近似值

经过我的逐条验正,发现好像是变量“f”的问题,我的变量f好像一直没有更新,但我在for循环中更新了n和d,按理来说我的f应该也会跟着更新啊。

img

#include
#include
int main()
{
double a,b,c,d,f,n;
n=1;
d=2;
c=pow((-1),d);
b=c*(1/n);
f=fabs(b);
for(a=0;f>=0.000001;n=n+2,d++)
{a=a+b;}
printf("%1.9lf\n",a);
return 0;
}

img

f 确实没更新。
你的f只在f=fabs(b);这里有个一次赋值,之后再也没有更新过。你的循环体里只有a=a+b;

我想
c=pow((-1),d);
b=c*(1/n);
f=fabs(b);
这些都应该在循环体里面吧

你没有在for循环中更新f的值,如果f>=0.000001条件成立则循环就是死循环,下边的输出就不会执行


很明显:f>=0.000001这个条件永远成立,程序进入了死循环