i++放在运算首位的问题
这里有个疑问,i++放在前面,在进行计算sum,因为前面不是已经定义过i=1,那么第一步计算不就成了sum=sum-2了?而且无论i++放在首位还是末位都是一样的-50,我的理解是i++放在首位不是应该少+一个1了吗,求解,困惑中
这里有个疑问,i++放在前面,在进行计算sum,因为前面不是已经定义过i=1,那么第一步计算不就成了sum=sum-2了?而且无论i++放在首位还是末位都是一样的-50,我的理解是i++放在首位不是应该少+一个1了吗,求解,困惑中
2016-11-06
题目是计算1-2+3-4+...-100的值,
对比三个答案,while和do-while是先自加,再求和;而 for循环是先求和,再自加,明显计算是有区别的。
while和do-while循环把i++放在前面,实际运算的是2-3+4-5+...-101,值虽然也为-50,却不对。
for循环运算的是1-2+3-4+...-100,值为-50,正确。
以while循环为例,查看每次i自加及sum求和的值。
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100)
{
i++;
sum+=i*flag;
printf("%d* %d= %d\n",i,flag,sum); //查看每次i自加及sum求和的值
flag*=-1;
}
printf("%d\n",sum);
return 0;
}
举报