求Π的近似值,运行出来是0,找不到错误在哪

alt

(https://img-mid.csdnimg.cn/release/static/image/mid/ask/902427979876155.png "#left")

变量 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)(2
n-1)
另外,a也要定义成浮点

参考GPT和自己的思路:

从你提供的截图来看,你的程序除以0了,导致程序运行出错,所以一定要检查这一部分的代码。然后还要检查程序中有没有其他语法错误和逻辑错误。此外,求Π的近似值可以用蒙特卡罗方法、勾股定理等多种算法实现,建议多尝试不同算法,找到最优解。

供参考:

img