帮我看个程序 C语言 结果不同

[复制链接]
查看11 | 回复4 | 2011-9-8 12:43:08 | 显示全部楼层 |阅读模式
当然不同啦,因为两个fun()函数里面循环条件不相等。do { s+=t;i++;t=t*i/(2.0*i+1);}while(t>=eps);与while(t>=eps){ s+=t; n++; t=t*n/(2.0*n+1); }这样才相等的。你的却变成了do {
s+=t;i++;t=t*i/(2.0*i+1) }while(t=eps);就会相等了。...
回复

使用道具 举报

千问 | 2011-9-8 12:43:08 | 显示全部楼层
第一个fun函数里的s 比第二个fun函数里的s少算了一次,因为while(){}是先进行条件检查在进行计算,而do { }while()是先进行计算在进行条件检查,两者有所不同,你再思考思考...
回复

使用道具 举报

千问 | 2011-9-8 12:43:08 | 显示全部楼层
while(t>=eps){ s+=t; n++; t=t*n/(2.0*n+1); }与do {
s+=t;i++;t=t*i/(2.0*i+1) }while(t=eps) }试试不过还是有些细微不一样。...
回复

使用道具 举报

千问 | 2011-9-8 12:43:08 | 显示全部楼层
你写了2个fun函数,循环条件分别是t>=eps和t<eps,由于你定义的eps和t都是double型的所以这两个条件并不是等价的,也就是说运行的时候运行的是哪个fun函数就不一定了,所以这个结果可能会有所不同,如果想知道的详细点,希望你说清楚你的输入是多少和你写这个程序的想要解决的问题是什么...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行