亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

答案沒看懂,求大神解釋。

這道題的第一個答案WHILE循環,那個i++在sum += i*flag的前面,那整個程序不就變成了2-3+4-5.....+100-101了嗎?雖然答案是一樣的。 ? 想問一下我是不是有哪兒理解錯了。

正在回答

2 回答

你的理解沒錯,你可以改成這樣

int sum = 0;

? ? ?int i =1;

? ? ?int flag = 1;

? ? ?while(i <= 100)

? ? ?{

? ? ? ? i++;

? ? ? ? sum += i * flag;

? ? ? ? printf("%d ",i * flag);

? ? ? ? flag *= -1;

? ? ?}

? ? ?printf("\nsum=%d\n",sum);

會有這樣的輸出:?2 -3 4 -5 6 -7 8 -9 10 -11 12 -13 14 -15 16 -17 18 -19 20 -21 22 -23 24 -25 26 -27 28 -29 30 -31 32 -33 34 -35 36 -37 38 -39 40 -41 42 -43 44 -45 46 -47 48 -49 50 -51 52 -53 54 -55 56 -57 58 -59 60 -61 62 -63 64 -65 66 -67 68 -69 70 -71 72 -73 74 -75 76 -77 78 -79 80 -81 82 -83 84 -85 86 -87 88 -89 90 -91 92 -93 94 -95 96 -97 98 -99 100 -101

0 回復 有任何疑惑可以回復我~
#1

愛玩的瓦力 提問者

看著好復雜。。。 系統要求的是1-2+3-4..........-100這個,但是它給的答案是求2-3+4-5......+100-101。是不是有問題?
2015-02-14 回復 有任何疑惑可以回復我~
樓主見過這樣寫的嗎?,
第一種
?while(i++<=100)
????{
????????sum?+=?i*flag;
????????flag?*=?-1;
		
????}
?第二種
?while(++i<=100)
????{
????????sum?+=?i*flag;
????????flag?*=?-1;
		
????}

這樣寫的話就是看你是否能區分 ? i++和++i,但若單獨一行寫的話,兩種形式都不影響結果的無論是寫在累加語句的前面還是累加語句的后面都是一樣的,至于具體的原因,應該是遵循

判斷條件 ? ?若為真 ? ?則主體語句,然后是修改循環條件 ? ?然后是繼續判斷

0 回復 有任何疑惑可以回復我~
#1

愛玩的瓦力 提問者

我勉強看懂了,就是對i++和++i的區分有點兒困難。還有對這道題的系統答案有些懷疑。你寫的兩個算式當int i=0時循環就是1-2+3-4..........-100;當int i=1時,就變成了計算2-3+4-5......+100-101了。系統的答案是不是就是算的2-3+4-5......+100-101?
2015-02-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

答案沒看懂,求大神解釋。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號