课程
/后端开发
/C
/C语言入门
sum+=i*flag;
flag*=-1
这两步不懂啊 什么意思呢 怎么算的 啊
2015-02-16
源自:C语言入门 4-10
正在回答
当执行sum=sum+i*flag(1)后,
执行flag*=-1 (变成 flag= flsg(1)*(-1))=-1
这个时候 flag已经是=-1了
在执行 i++后,sum=sum+i*(flag=-1)负数
再执行一次flag*=-1 (变成 flag= flsg(-1)*(-1))=1, 正数!
就是一直这样一正一负循环, ? 我是这样理解的,看了半个小时理解这个代码意思! 希望对你有所帮助
(百度搜到的解释,觉得不错就分享了。)
这是一个编程的小技巧第一次执行循环的时候:flag = 1 , sum = 0, i = 1那么sum = sum + i * flag = 0 + 1 * 1 = 1 i作为正数加入接下来flag = flag * -1 = 1 * -1 = -1所以第二次执行循环的时候sum = sum + i * flag = 1 + 2 * -1 = 1 - 2 = -1 i作为负数加入接下来flag = flag * -1 = -1 * -1 = 1那么第三次执行循环的时候,i又可以作为正数加入,以此类推就可以达到判断符号的效果。
Fighting_001
不明白
什么东东
sum+=i*flag等价于sum=sum+i*flag
flag*=-1等价于flag=flag*(-1)
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
2 回答符号状态变量???
1 回答符号状态变量
2 回答符号状态变量flag指的是什么?
1 回答int flag = 1; //定义符号状态变量flag