[問題] 迴圈執行結果預測錯誤

看板C_and_CPP作者 (PT鄉民)時間10年前 (2014/03/13 13:33), 編輯推噓6(712)
留言10則, 5人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 副程式執行問題 餵入的資料(Input): 如題目 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) (1) int main(){ int a=1; while(a<3){ printf("*"); a+=1; } do{ printf("*"); a+=1; }while(a<6); return 0; } 我預計輸出會是 ****** 結果卻是 ***** 少了一個* (2) int i,j=2; if(j=5) for(i=0;j>=i;i++) printf("*\n"); 想問一下這段程式for迴圈是會執行幾次呢? 我是覺得會執行3次 但是書本寫說會執行6次 請問怎麼判斷呢?? 補充說明(Supplement): 以上兩題希望高手能幫幫!!謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.27.125.49 ※ 編輯: APE36 來自: 114.27.125.49 (03/13 13:33)

03/13 13:37, , 1F
第2題的if....
03/13 13:37, 1F
題目是這樣的 沒錯!! ※ 編輯: APE36 來自: 114.27.125.49 (03/13 13:41)

03/13 13:43, , 2F
第1題5個*是對的,自己把每次的a值寫出來就知道
03/13 13:43, 2F

03/13 13:44, , 3F
我不是跟你說題目有錯,我是在說那裡是解題關鍵
03/13 13:44, 3F

03/13 13:48, , 4F
在想迴圈跑幾次之前,得先搞懂j=5是什麼
03/13 13:48, 4F
那邊不是判斷式嗎?? 還是說j就是直接等於 5 給他?? ※ 編輯: APE36 來自: 114.27.125.49 (03/13 13:51)

03/13 13:55, , 5F
就是直接等於5,5非0,所以if為真
03/13 13:55, 5F

03/13 17:21, , 6F
其實這個東西 你中斷點去看 就可以懂了
03/13 17:21, 6F

03/13 17:22, , 7F
j == 5 才是判斷 j = 5 是給值
03/13 17:22, 7F

03/13 20:22, , 8F
是說這跟副程式也無關吧,應該是迴圈的運用
03/13 20:22, 8F

03/14 13:25, , 9F
沒縮排...
03/14 13:25, 9F

03/15 19:46, , 10F
你要印6個*把a設成0就好了阿....
03/15 19:46, 10F
文章代碼(AID): #1J8KCSVB (C_and_CPP)
文章代碼(AID): #1J8KCSVB (C_and_CPP)