数据类型课后作业求助
为什么把 sum = 0 放在开头定义里和放在 for循环 里的结果不一样 放到循环里面每次循环都被赋值为0 本帖最后由 jackz007 于 2019-1-30 18:08 编辑
如果把 sum 放在循环外面,那么 sum 的值是 pow(2 , 0) + pow(2 , 1) + pow(2 , 3) + . . . + pow(2 , 63) ;如果放在循环里面,sum 的值只是 pow(2 ,63) ,就没有累加的效果了 。 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);
获得正确结果。 行客 发表于 2019-1-30 18:28
sum循环内,每次循环sum开始都会被初始化为0,所以最后1次循环结束后,sum的最终值为
sum = 0 + temp;
最 ...
懂啦谢谢!!! 作业在哪个页面啊
页:
[1]