課程
/后端開發
/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 回答這些運算符有沒有什么先后計算順序?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-02-22
#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;? ??
}
2020-02-22
肯定有先后順序的。語言中代碼的順序非常重要,順序不同結果可能不同。
如上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。
2020-02-22
....
程序一般是由上往下從左往右執行