用for循环
{sum+=flag*i;flag*=-1}计算结果是50
{flag*=-1;sum+=flag*i}计算结果是-50
#include <stdio.h>
int main()
{
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
int flag = 1; //定义符号状态变量flag
//使用for循环
for(i=1;i<=100;i++)
{
flag*=-1; //放在前面=-1+2-3+4..
sum+=flag*i;
//flag*=-1; //放在前面=1-2+3-4..
}
printf("sum=%d\n",sum);
return 0;
}
肯定有先后顺序的。语言中代码的顺序非常重要,顺序不同结果可能不同。
如上for语句循环结构图,先执行花括号里的代码,然后i再自加。
第一个花括号中flag在前,先执行flag。执行第一次时i=1,flag运行一次的值为-1,于是运行的结果就是-1+2-3...-99+100。
第二个花括号中sum在前,先算sum=flag(初始值为1)*i(初始值为1),再算flag,再对i自加,运算结果为1-2+3...+99-100。
....
程序一般是由上往下从左往右执行