#include
void main()
{
long i=1;
double n=1.00,pi=0.00;
while(n<40000) /*计算到39999必需使循环终 止条件为n<40000*/
{pi=pi+(1/n)*i*4;
n=n+2;i=-i;
}
printf("pi=%f",pi);
}
你用的公式是pi=4*(1-1/3+1/5-1/7+...1/39997)
这个级数收敛太慢了。
还要精确的话得用另一种方法
pi=2*(1+1/3+1/3*2/5+1/3*2/5*3/7+...)
#include
void main()
{
int k=10,i;
//printf("Please input k's value:");
//scanf("%d",&k);
float pi,tmp=1.0;
for(i=k;i>0;i--)
tmp=tmp*(float)(i/(2*i+1))+2;
printf("PI=%f\n",tmp);
}