Re: [問題]draw a hollow square surrounded by stars

看板C_and_CPP (C/C++)作者 (windknife18)時間16年前 (2009/03/21 14:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
參考以下的程式編號 假如一開始 row = 1, stars =5 row=1 的時候 37-51 行 只會執行到 第 40 行 5 次 ***** row=2 37-51 行 只會執行到 第 44行1次 48行3次 46行1次 * * row=3 37-51 行 只會執行到 第 44行1次 48行3次 46行1次 * * row=4 37-51 行 只會執行到 第 44行1次 48行3次 46行1次 * * row=5 37-51 行 只會執行到 第 42行 5 次 ***** 所以合起來就是 ***** * * * * * * ***** 其實程式還可以精簡才對,尤其是很多 if 可以合併 ---------------------------------------------- 32 while ( row <= stars ) 33 { 34 column = 1; 35 36 // and for as many columns as rows 37 while ( column <= stars ) 38 { 39 if ( row == 1 ) 40 System.out.print( "*" ); 41 else if ( row == stars ) 42 System.out.print( "*" ); 43 else if ( column == 1 ) 44 System.out.print( "*" ); 45 else if ( column == stars ) 46 System.out.print( "*" ); 47 else 48 System.out.print( " " ); 49 50 column++; 51 } // end inner while loop 52 53 System.out.println(); 54 row++; 55 } // end outer while loop ※ 引述《TikalCelts (Σ.﹒‧°★)》之銘言: : 這題目想了 幾小時 有點不了解 為什麼 這樣寫 : 哪位好心人 能指導一下方向 去解讀嗎? : while ( row <= stars ) : { : column = 1; : while ( column <= stars ) : { : if ( row == 1 ) : cout << "*"; : else if ( row == stars ) : cout << "*";            : else if ( column == 1 ) : cout << "*"; : else if ( column == stars ) : cout << "*"; : else : cout << " "; : column++; : } // end inner while : cout << endl; : row++; : thx . -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.131.84.79
文章代碼(AID): #19n8yeaJ (C_and_CPP)
文章代碼(AID): #19n8yeaJ (C_and_CPP)