慕村6484577
2020-08-14 19:41
为什么
sum+=i*flag;
flag*=-1;
得到的是-50而
flag*=-1;
sum+=i*flag;
得到的结果是50.
如果你把flag*=-1;放到前面意味着首先把符号变成负号,即此时flag为-1,而不是1,;当第一个数取1,sum+=i*flag;得到的sum值为-1,然后再继续循环,就相当于把1-2+3-4.........,变成-1+2-3+4..........,也就是说把基数减偶数变成了偶数减奇数,所以结果就变相反的了
C语言入门
926027 学习 · 20793 问题
相似问题