| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 443 人关注过本帖
标题:新手再次问个低级问题
只看楼主 加入收藏
王思源
Rank: 1
等 级:新手上路
帖 子:33
专家分:1
注 册:2012-9-16
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:4 
新手再次问个低级问题
void test_float (){
  long i;
  float sum=0.0,sum0=-1,0;
  for (i=1;sum!=sum0;++1){
      sum0=sum;
      sum+=1/(float)i;
}
printf("float :%ld terms at %f\n",i-1,sum);
}





这是我们课本上的一个测试程序 说循环的结束条件是 sum 的部分和不再变化  这是什么意思啊 ?为什么会不变化?难道和精度有关吗?
搜索更多相关主题的帖子: 课本 terms 
2012-09-27 15:33
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
++1

你确定这里是1???
2012-09-27 15:39
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
确实和精度有关,当i足够大时,1/(float)i会变成0.0

My life is brilliant
2012-09-27 15:48
王思源
Rank: 1
等 级:新手上路
帖 子:33
专家分:1
注 册:2012-9-16
收藏
得分:0 
不对 我打错了 是i
2012-09-27 15:59
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:3 
是和精度有关,当在精度条件下,sum0与sum相等时终止循环。即sum-sum0为1/i精度为0的条件。(不考虑你书写)

www.qunxingw.wang
2012-09-27 16:03
快速回复:新手再次问个低级问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011306 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved