中易网

C语言基础:求π的近似值。 pi=4*(1-1/3+1/5-....) 我哪里错了?

答案:2  悬赏:30  
解决时间 2021-01-16 21:07
  • 提问者网友:鐵馬踏冰河
  • 2021-01-16 07:17
C语言基础:求π的近似值。 pi=4*(1-1/3+1/5-....) 我哪里错了?
最佳答案
  • 二级知识专家网友:深街酒徒
  • 2021-01-16 08:13
#include 
int main()
{
    float pi=4.0,n=-3.0,t=1.0;
    while (fabs(1/n)>=1e-6){//用fabs  不要用abs。 abs是整型的。 精度应该是1e-6
        pi=pi+4*(1.0/n);
        t=t*(-1.0);
        n=(abs(n)+2.0)*t;//一样用fabs
    }
    printf("%.6f
",pi);
    return 0;
}其实 把n作为int更好。
比如
#include 
int main()
{
    float pi=4.0;
    int n=3,t=-1;
    while (1.0/n>=10e-6){
        pi=pi+4*(1.0/n)*t;
        t=t*-1;
        n=n+2;
    }
    printf("%.6f
",pi);
    return 0;
}
全部回答
  • 1楼网友:傲气稳了全场
  • 2021-01-16 09:29
#include<stdio.h>
#include<math.h>
int main()
{
int sign=1;
double pi = 0.0, n = 1.0, term = 1.0;//term表示当前项
while(fabs(term)>=1e-6)
{
pi += term;
n += 2;
sign = -sign;
term = sign / n;
}
pi *= 4;
printf("pi=%.8f ",pi);
return 0;
}
你的思路感觉比较模糊,方法不可取,你可以对照一下我的程序,仅供参考。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息