求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
所以呢?你的问题呢? pi请初始化为0 问题在于你的循环次数太少了。
另外,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]