Re: [問題] 輔大92資工

看板TransCSI作者 (你今天督了嗎XD)時間18年前 (2007/06/05 21:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《chen0404 (這個冬天會很暖)》之銘言: : a. int i = 0, total = 0; : while(++i<=100) : total += i; : 試回答此迴圈結束後,i和total的值各為何? : b. int i = 1, total = 0; : while(i++<=100) : total += i; : 試回答此迴圈結束後,i和total的值各為何? : 有點分不清...想請教一下...^^" 今天偶然爬到這篇文章,練習做了一次,發現跟測出來的值相吻合, 不過我想以文字理解的方式說明, 大家看我說的對不對~ ----------------------------------------------------------- 關於a. 一開始先執行++i => i=1 total +=i => total=1 以此類推進行到i=100時 一樣先++i => i =101 不滿足while條件,所以total沒有加到101 所以i仍然是101, 而total則是1+2+3+4+.....+100 = 100*(1+100)/2 = 5050 關於b. 則是一開始先執行while條件的判斷=> 1<100 成立,判斷結束以後才將i+1 = 2 所以total = total + i = 2 以此類推進行到i=100時經過條件判斷滿足後i = 101, 所以total最後加到101 然後回到迴圈條件判斷發覺101不符, 因此迴圈終止但最後仍然要進行i++, 所以i = 102, 而total = 2+3+4+....+101 = 100*(101+2)/2 = 5150 以上~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.228.83.133
文章代碼(AID): #16PMOTY6 (TransCSI)
討論串 (同標題文章)
文章代碼(AID): #16PMOTY6 (TransCSI)