课程
/后端开发
/C
/C语言入门
用for循环
{sum+=flag*i;flag*=-1}计算结果是50
{flag*=-1;sum+=flag*i}计算结果是-50
2020-02-22
源自:C语言入门 4-10
正在回答
#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;
小白萌新up 提问者
肯定有先后顺序的。语言中代码的顺序非常重要,顺序不同结果可能不同。
如上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。
....
程序一般是由上往下从左往右执行
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
2 回答i++的先后顺序
3 回答算法的先后顺序
3 回答优先级顺序
3 回答运算符的运算的先后顺序?
2 回答这些运算符有没有什么先后计算顺序?