变量 a 定义成 double 类型
修改如下:
#include <stdio.h>
#include <math.h>
int main()
{
int sign = 1;
double pi = 0.0, n = 1.0, a= 1.0;
while (fabs(a) >= 1e-6)
{
pi += a;
n += 2;
sign = -sign;
a= sign / n;
}
pi*=4;
printf("II的近似值是:%lf", pi);
return 0;
}
1/(2n-1)
这里因为n是整数,所以这里是整除
需要写
1/(float)(2n-1)
另外,a也要定义成浮点
参考GPT和自己的思路:
从你提供的截图来看,你的程序除以0了,导致程序运行出错,所以一定要检查这一部分的代码。然后还要检查程序中有没有其他语法错误和逻辑错误。此外,求Π的近似值可以用蒙特卡罗方法、勾股定理等多种算法实现,建议多尝试不同算法,找到最优解。
供参考: