mr6923612 发表于 2020-4-7 23:26:06

求pi的问题

据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)

#include<stdio.h>
int main()
{
        int i;
        double pi,a;
        for(i=1;i<=100;i++)
        {
                if(i%2)
                {
                        a=i;
                        pi=pi+1/(a*2-1);
                }
                if(!(i%2))
                {
                        a=i;
                        pi=pi-1/(a*2-1);
                }
        }
        pi=pi*4.0;
        printf("pi=%.7f\n",pi);
        return 0;
}

pi=3.1315929

wp231957 发表于 2020-4-8 06:49:47

所以呢?你的问题呢?

BngThea 发表于 2020-4-8 08:17:02

pi请初始化为0

sunrise085 发表于 2020-4-8 09:21:40

问题在于你的循环次数太少了。
另外,pi没有赋初值,两个if可以合并的。
#include<stdio.h>
int main()
{
    long i,t=-1;
    double pi=0,a;
    for(i=1;i<=10000000;i++)
    {
      a=i;
      t*=-1;
      pi=pi+t/(a*2-1);
    }
    pi=pi*4.0;
    printf("pi=%.7f\n",pi);
    return 0;
}
页: [1]
查看完整版本: 求pi的问题