鱼C论坛

 找回密码
 立即注册
查看: 1753|回复: 5

[已解决]数据类型课后作业求助

[复制链接]
发表于 2019-1-30 16:11:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.png 2.png 4.png 3.png
为什么把 sum = 0 放在开头定义里和放在 for循环 里的结果不一样
最佳答案
2019-1-30 18:28:19
sum循环内,每次循环sum开始都会被初始化为0,所以最后1次循环结束后,sum的最终值为
sum = 0 + temp;
最后的sum为
sum = 0 + pow(2 ,  63) ;

而在循环体外,每次sum都会累加。即sum的值为
第1次循环,i为0
sum = 0 + pow(2 ,  0) ;
第2次循环,此时sum已经被赋值为pow(2 ,  0)了,所以
sum = pow(2 ,  0)  + pow(2 ,  1);
第3次循环,
sum = pow(2 ,  0)  + pow(2 ,  1) + pow(2 ,  2) ;

以此类推。。。。

直到i为63结束循环,此时sum值为:
sum = pow(2 ,  0)  + pow(2 ,  1) + pow(2 ,  2) + ... + pow(2,63);

获得正确结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-30 16:43:39 | 显示全部楼层
放到循环里面每次循环都被赋值为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 18:06:03 | 显示全部楼层
本帖最后由 jackz007 于 2019-1-30 18:08 编辑

      如果把 sum 放在循环外面,那么 sum 的值是 pow(2 , 0) + pow(2 , 1) + pow(2 , 3) + . . . + pow(2 , 63) ;如果放在循环里面,sum 的值只是 pow(2 ,  63) ,就没有累加的效果了 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 18:28:19 | 显示全部楼层    本楼为最佳答案   
sum循环内,每次循环sum开始都会被初始化为0,所以最后1次循环结束后,sum的最终值为
sum = 0 + temp;
最后的sum为
sum = 0 + pow(2 ,  63) ;

而在循环体外,每次sum都会累加。即sum的值为
第1次循环,i为0
sum = 0 + pow(2 ,  0) ;
第2次循环,此时sum已经被赋值为pow(2 ,  0)了,所以
sum = pow(2 ,  0)  + pow(2 ,  1);
第3次循环,
sum = pow(2 ,  0)  + pow(2 ,  1) + pow(2 ,  2) ;

以此类推。。。。

直到i为63结束循环,此时sum值为:
sum = pow(2 ,  0)  + pow(2 ,  1) + pow(2 ,  2) + ... + pow(2,63);

获得正确结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-31 10:34:19 | 显示全部楼层
行客 发表于 2019-1-30 18:28
sum循环内,每次循环sum开始都会被初始化为0,所以最后1次循环结束后,sum的最终值为
sum = 0 + temp;
最 ...

懂啦谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-31 13:51:13 | 显示全部楼层
作业在哪个页面啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 06:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表