Re: [問題]draw a hollow square surrounded by stars
看板C_and_CPP (C/C++)作者windknife18 (windknife18)時間16年前 (2009/03/21 14:54)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章