π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于1e-6#include #include int main (){double PI,a;int i;for(i=1,PI=0.0;fabs(a=1.0/i)>=1e-6;i+=2,i*=-1)PI+=a;PI*=4;printf("PI=%f\n",PI);return 0;}这样做为什么不行,

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 03:56:05
π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于1e-6#include#includeintmain(){doublePI,a;inti;for(i=1,PI=0.

π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于1e-6#include #include int main (){double PI,a;int i;for(i=1,PI=0.0;fabs(a=1.0/i)>=1e-6;i+=2,i*=-1)PI+=a;PI*=4;printf("PI=%f\n",PI);return 0;}这样做为什么不行,
π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于1e-6
#include #include
int main ()
{
double PI,a;
int i;
for(i=1,PI=0.0;fabs(a=1.0/i)>=1e-6;i+=2,i*=-1)
PI+=a;
PI*=4;
printf("PI=%f\n",PI);
return 0;
}
这样做为什么不行,

π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于1e-6#include #include int main (){double PI,a;int i;for(i=1,PI=0.0;fabs(a=1.0/i)>=1e-6;i+=2,i*=-1)PI+=a;PI*=4;printf("PI=%f\n",PI);return 0;}这样做为什么不行,
i=1,PI=0.0;fabs(a=1.0/i)>=1e-6;i+=2,i*=-1
这个语句是有问题的,你得到的并不是 1-1/3+1/5-1/7+...这个序列,建议你自己写开看看.
另外,可以参考我给你改的程序:
#include
#include
int main ()
{
double PI,a;
int i,j;
for(i=1,j=1,PI=0.0;fabs(a=1.0/i*j)>=1E-6;i=fabs(i)+2,j*=-1)
PI+=a;
PI*=4;
printf("PI=%f\n",PI);
return 0;
}
得到了正确的结果,