开发者社区 问答 正文

利用公式求π的近似值,直到最后一项的绝对值小于1E-6为止。

#include
#include
int main()
{
double a,b,c,d,e,f,pi,sum;
a=0;
b=1;
f=0;
sum=0;
while(b<500000)
{
a=2a+1;
b=2b+1;
c=1/a;
d=1/b;
f=c-d;
sum=sum+f;
a++;
b++;
}
pi=4/sum;
printf("pi=%.8f",pi);
return 0;
} 怎么有错误?

展开
收起
a123456678 2016-03-20 13:56:26 4805 分享 版权
1 条回答
写回答
取消 提交回答
  • #include <stdio.h>
    int main()
    {
        double a, b, c, d, e, f, pi, sum;
        a = 1;
        b = 3;
        f = 0;
        sum = 0;
        while (b < 50000000)/*每次循环做一个1/(2*n-1)-1/(2*n+1),但是公式里的2n-1并不一定表现在程序里的2n-1*/
        {
            c = 1 / a;
            d = 1 / b;
            f = c - d;
            sum = sum + f;
            a += 4;
            b += 4;
        }
        pi = sum * 4;/*你的公式都错了。是pi/4=1-1/3+1/5-1/7...*/
        printf("pi=%.8f", pi);
        getchar();
        return 0;
    }
    
    2019-07-17 19:09:33
    赞同 展开评论
问答地址: