
c语言编程:pi/4=1-1/3+1/5-1/7+…,请计算pi的近似值。
6个回答
展开全部
这个程序就可以了,i<1000000后面的这个数字可以你自己改的,改得越大就越接近,不过运行时间会增加
#include<stdio.h>
void main()
{
double pi=0.0,i=1.0,j=1.0;
for(;i<1000000;i+=2,j=-j)
pi+=1/(i*j);
pi=pi*4;
printf("pi=%lf",pi);
}
#include<stdio.h>
void main()
{
double pi=0.0,i=1.0,j=1.0;
for(;i<1000000;i+=2,j=-j)
pi+=1/(i*j);
pi=pi*4;
printf("pi=%lf",pi);
}
展开全部
感觉 zelon19890311 | 八级 的就很好了 程序挺好理解的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void main()
{ double pi=0;
int k,i,n=1;
scanf("%d",&k)//输入k控制精确值,k越大,越精确。
for(i=1;i<k;i+=2,n++)
pi=pi+pow(-1,n-1)*1/i;
printf("%d",pi*4);
}
{ double pi=0;
int k,i,n=1;
scanf("%d",&k)//输入k控制精确值,k越大,越精确。
for(i=1;i<k;i+=2,n++)
pi=pi+pow(-1,n-1)*1/i;
printf("%d",pi*4);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题是 double 本身的精度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main( )
{ intn=1;
float s=1.0,pi=1.0,t;
do
{ n+=2;
s=-s;
t=s/n;
pi+=t;
}while((fabs(t))<=1e-6);
printf("pi=%10.6f\n",pi*4);
}
main( )
{ intn=1;
float s=1.0,pi=1.0,t;
do
{ n+=2;
s=-s;
t=s/n;
pi+=t;
}while((fabs(t))<=1e-6);
printf("pi=%10.6f\n",pi*4);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询