#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100)
{
i++;
sum+=flag*i;
flag*=-1;
}
printf("sum=%d\n",sum);
return 0;
}
i++在后面的情况是从 1执行执行到100结束,最后一个数字是-100结果是-50。当i++在前面(如你写的代码),这种情况是从2执行,执行到101,最后一个数字是-101结果也是-50。第一种情况的最后一次是执行完了sum+=-100 , i++就是100+1=101,然后再进入循环判断101<=100,然后语句结束,第二种情况是最后一次进入判断的是i=100,while(100<=100) 进入循环体 i++就是 100+1=101,sum+=-101, 这时候才算结束。这样两次的结果就都是-50了。不知道我这样说是否明白。
我不明白。。。求指教。
同学你得先理解i++
正是因为i++时i首先仍取原值