#include <stdio.h>
int main()
{
/* 小伙伴们:
选择你们认为最合理的循环结构完成功能吧 */
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
int flag = 1; //定义符号状态变量flag
//使用while循环
while(i<=100)
{
i++;
sum += i*flag;
flag *= -1;
}
printf("sum=%d\n",sum);
return 0;
}
开始时已经定义i=1,后面有赋值i++,那么后面的sum+=i*flag不是等于2吗?
我也有这样的困惑 我觉得i++应该放后面 而不是放前面
++a是先运算再取值,意思是a会先加1, 之后再取值,此时a=a+1;
而a++正好相反,先取a的值,再把a加一;如若对a有计算,得到的将是a加一之前的值,而在下一次的运算中,a的值将是a+1之后的。
没错,确实是2。
先进行赋值运算 第一次循环后i再自增 所以第一次循环结束前i的值还是1 这么理解下?