c语言编程:pi/4=1-1/3+1/5-1/7+…,请计算pi的近似值。

 我来答
畅景彰b5
2011-02-03 · TA获得超过4374个赞
知道小有建树答主
回答量:839
采纳率:0%
帮助的人:1276万
展开全部
这个程序就可以了,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);
}
墨家刺客
2011-02-03
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
感觉 zelon19890311 | 八级 的就很好了 程序挺好理解的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东乐II
2011-02-03 · TA获得超过263个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:183万
展开全部
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dsppower
2012-12-16
知道答主
回答量:46
采纳率:0%
帮助的人:12.2万
展开全部
问题是 double 本身的精度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轻摇舞转琉璃纱
2019-01-16
知道答主
回答量:9
采纳率:0%
帮助的人:4972
展开全部
#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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式