#include <stdio.h>
#include <math.h>
int main()
{
int sign;
double pi, deno, part;
for (deno = 1.0, sign = 1, pi = 0.0; fabs(part) >= 1e-6; deno += 2, sign = -sign) {
part = sign / deno;
pi += part;
}
printf("PI的值为:%10.8f", pi * 4);
return 0;
}
part初始值是0,for循环一次都进不去,建议可以把这段放在for语句前面
sign = 1;
deno = 1.0;
part = sign / deno;
其他内容不变
应该是part初始值为0,导致一开始fabs(part) >= 1e-6为false,没有进入循环。可以初始化赋值为1
part没有赋值,for循环无效
你的part没有赋初值,就直接进行比较了,导致的结果是for循环没有执行。
这种问题你多调试下就知道