搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 新手再次问个低级问题
标题:
新手再次问个低级问题
只看楼主
王思源
等 级:
新手上路
帖 子: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
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
2
楼
得分:3
++1
你确定这里是1???
2012-09-27 15:39
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
3
楼
得分:3
确实和精度有关,当i足够大时,1/(float)i会变成0.0
My life is brilliant
2012-09-27 15:48
王思源
等 级:
新手上路
帖 子:33
专家分:1
注 册:2012-9-16
第
4
楼
得分:0
不对 我打错了 是i
2012-09-27 15:59
qunxingw
等 级:
贵宾
威 望:
24
帖 子:1676
专家分:7295
注 册:2011-6-30
第
5
楼
得分:3
是和精度有关,当在精度条件下,sum0与sum相等时终止循环。即sum-sum0为1/i精度为0的条件。(不考虑你书写)
www.qunxingw.wang
2012-09-27 16:03
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-382205-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.588665 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved