急!在线等!! 一道c语言程序 改错 题

用以下公式求π的值π=2*(1+1/3+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9程序运行后,输入精度0.0005,则程序输出为3.1415。。... 用以下公式求π的值 π=2*(1+1/3+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9程序运行后,输入精度0.0005 ,则程序输出为3.1415。。。。

double fun(double eps)
{int i,p,m;double s=1;n=1;
for (i=1,p=1,m=1;n>eps;i++)
{p*=i,m*=2*i+1,n=(double) p/m;
s+=n;}
return 2*s;
}
main()
{double x;
scanf("%lf",&x);
printf ( eps=%lf,π=%lf",x,fun(x));}
运行以后,结果不正确!请帮忙改正!
展开
 我来答
职场安徒生
2010-08-31
知道答主
回答量:38
采纳率:0%
帮助的人:10.9万
展开全部
你所以进行的计算是整数值比较小、小数值比较大的计算,如果用double的话,
相当于用一大脸盆去装一个绿豆,效果反而不好,所以全部改为float。
float fun(float eps)
{
int i;
float p,m,n;
float s=1;
n=1;
for (i=1,p=1,m=1;n>eps;i++) {
p*=i;
m*=(2*i+1); /*如果不加括号,原式相当于(m = m * 2 * i) + 1*/
n=(float) p/m;
s+=n;
}
return 2*s;
}
main()
{
float x; /* 因为你输入的数是0.0005,用double太大了 */
scanf("%f",&x);
printf ("eps=%f,pie=%f",x,fun(x));
getch();
}
运行结果如下:
0.0005
eps=0.000500,pie=3.141106

1.你的编程代码风格不是很好,试问你看的什么书?
2.我担心改得太多令你费解,所以只做了重要的修改。
3.在初级学生写代码时,建议不要用一些奇怪的如"π"的字符,尽量改用英文pie或拼音替代。而且在写代码时请把输入法调为英文。否则你输入的是非法字符。
4.你遗漏了很多重要的关键符号,建议仔细看书。
金佛猪
2010-09-05 · TA获得超过101个赞
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
爸爸,今天我是采访者,你是被采访者。你可要知无不言,言无不尽哦。

B: 好。

A: 爸爸,你小时候看的是什么书?

B:那时没书可看,我们都看一种小人书。

A:那小人书是什么样子的?

B:小人书也叫连环画。小人书差不多就是现在的半本语文书那么大,每一页都有故事情节,还有相应的黑白画。

A: 那么小人书都有什么内容?

B:内容很丰富,有古典名著的,比如四大名著《红楼梦》《西游记》《三国演义》《水浒传》,还有历史故事的,比如《鸡毛信》《刘胡兰》,还有民间传说的。。。。。(笑)

A:那么现在还有没有这种小人书呢?

B:现在的小人书不常见了,由于电影、电视以及动漫等发展,小人书已成为一种回忆,进入收藏市场。它代表了中国文化的一个特殊年代。就算有也很贵了。

A:为什么现在的小人书这么贵了?

B:物以稀为贵呀,东西很少所以很珍贵。还有一种原因是每一种小人书都是手工画的,现在没有人愿意花这么多功夫画这些画。现在大家都看漫画书、电视、电影了。

A:那漫画书是不是人手工画的?

B:漫画是手工画的,但比起小人书可差太远了。

A:爸爸,你小时候买过小人书吗?

B:爸爸小时候买过呀,但买的不多。以前是小伙伴们买几本,交换着看,或者到书店去借。

A:唉!你们那时只有这种书呀,而我们有好多种,比起你们,我们真是太幸福了,不过听你这么一讲,我也有点想看了。

B;说的对呀,所以你们要喜欢阅读,快乐阅读!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mayraining
2010-08-31 · 超过25用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
呵呵,这个很正常的,公式误差....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式