| 查看: 2997 | 回复: 21 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
fengxingwang新虫 (初入文坛)
|
[求助]
C++编程,关于循环结构的,大家看看我这程序哪里错了?
|
||
#include void main() { double x,y,t,e,p,f,z; x=1; y=2; z=128; for(t=1;t<6;t=t+0.01) { e=x*t; p=y*t; f=e*p*t; if(f==z) break; } printf("%f,%f\n",t,f); } 运行结果是:6.01 ,432 应该是t=4. f=128 啊, 编译的时候没显示错误,但是结果却显示的不对,是怎么回事啊?? |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有3人回复
国家级人才课题组招收2026年入学博士
已经有5人回复
Fe3O4@SiO2合成
已经有6人回复
青年基金C终止
已经有4人回复
青椒八年已不青,大家都被折磨成啥样了?
已经有7人回复
为什么nbs上溴 没有产物点出现呢
已经有10人回复
救命帖
已经有11人回复
招博士
已经有5人回复
26申博求博导推荐-遥感图像处理方向
已经有4人回复
限项规定
已经有7人回复
peterjade
金虫 (正式写手)
- 应助: 15 (小学生)
- 金币: 1090.2
- 散金: 71
- 红花: 1
- 帖子: 531
- 在线: 289.7小时
- 虫号: 1444550
- 注册: 2011-10-15
- 性别: GG
- 专业: 计算机应用技术
【答案】应助回帖
★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助! 2012-03-11 23:23:27
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助! 2012-03-11 23:23:27
|
经过多次测试,测试开发环境是vc++ 6.0, 如果 double x=128.000000, y=128 int a =128; 用 比较运算符 == 比较的结果这三者都是相等的。 我觉得对于数值都是整数的double类型的变量,直接进行判断是相等的,因为在计算机内部可以用二进制数据完整表示。 而对于某些double类型的数值,在计算机内部都是近似表示的,就像127.1234589等, 代码中的t=t+0.01,实际上你调试查看变量t在内存当中的值不会是等于4,会是4.xxxxxxxxxxxxx这样的逼近值,所以后来计算的z不可能等于128 |

15楼2012-02-29 17:52:45
ataoyo
至尊木虫 (职业作家)
- 应助: 3 (幼儿园)
- 金币: 28571.6
- 散金: 500
- 红花: 1
- 帖子: 3611
- 在线: 735.2小时
- 虫号: 832286
- 注册: 2009-08-22
- 性别: GG
- 专业: 药物化学
2楼2012-02-29 14:12:36
fengxingwang
新虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 8.5
- 帖子: 24
- 在线: 14.8小时
- 虫号: 1378842
- 注册: 2011-08-24
- 专业: 化工热力学和基础数据
3楼2012-02-29 14:19:24
fengxingwang
新虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 8.5
- 帖子: 24
- 在线: 14.8小时
- 虫号: 1378842
- 注册: 2011-08-24
- 专业: 化工热力学和基础数据
4楼2012-02-29 14:21:22













#include
回复此楼
gyqcumt