計算機概論:C/C++程式設計
|
第4章. 反覆計算:迴圈 |
|
|
授課教師:陳慶瀚 WWW : http://www.miat.ee.isu.edu.tw/cpp E-mail : pierre@isu.edu.tw |
|
4.3 巢狀的for迴圈 前一節的迴圈用於單一維度(one-dimensional)的反覆計算,例如1到100的累加值,我們只需使用一個控制變數,令其隨著迴圈循環從1變化到100即可,這個控制變數的意義可以是迴圈進行的次數,可以是時間,可以是任意連續變化的物理量。如果我們想控制兩個變數在兩個維度上分別變化,我們就需要用到巢狀迴圈的技巧。 /*----------------------------------------------------*/ //
範例程式4-6 //
巢狀的for迴圈 //
陳慶瀚,2001 /*----------------------------------------------------*/ #include
<iostream.h> void
main()
{
int sum = 0, max_rows = 5, max_cols = 4;
int rows, columns;
for(rows = 0; rows < max_rows; rows++)
{
for(columns = 0; columns < max_cols; columns++)
{
sum = sum+ rows + columns;
cout <<"rows:"<<rows; cout<<"
columns"<<columns; cout<<"
sum is "<<sum<<endl;
}
}
} 程式輸出: rows
: 0 columns : 0 sum is 0 rows
: 0 columns : 1 sum is 1 rows
: 0 columns : 2 sum is 3 rows
: 0 columns : 3 sum is 6 rows
: 1 columns : 0 sum is 7 rows
: 1 columns : 1 sum is 9 rows
: 1 columns : 2 sum is 12 rows
: 1 columns : 3 sum is 16 rows
: 2 columns : 0 sum is 18 rows
: 2 columns : 1 sum is 21 rows
: 2 columns : 2 sum is 25 rows
: 2 columns : 3 sum is 30 rows
: 3 columns : 0 sum is 33 rows
: 3 columns : 1 sum is 37 rows
: 3 columns : 2 sum is 42 rows
: 3 columns : 3 sum is 48 rows
: 4 columns : 0 sum is 52 rows
: 4 columns : 1 sum is 57 rows
: 4 columns : 2 sum is 63 rows
: 4 columns : 3 sum is 70 在這個範例程式,我們建立兩個迴圈的巢狀結構:一個迴圈包含著另一個迴圈,外部迴圈共執行了5次(rows從0變化到4),內部迴圈則執行了20次(當rows為一個任意值時,columns從0到3共執行4次),在內部迴圈的每一次循環,我們計算rows和columns 的累加值,並將之輸出到螢幕,因此最後我們得到20行輸出。 課堂練習TD4-4: 使用雙重for迴圈,在螢幕上輸出一個由字元’*’所填滿的長方形,其寬度為8個字元,高度為12個字元。 課堂練習TD4-5: 使用雙重for迴圈,在螢幕上輸出一個邊框由字元’*’所構成的空心長方形,其寬度為8個字元,高度為12個字元。
課堂練習TD4-6: 如練習TD4-6,但由使用者輸入想要的寬度和高度。
課堂練習TD4-7: 寫一個程式,在螢幕輸出九九乘法表,其格式如下: 1
2 3
4 5
6 7
8 9
2
4 6
8 10
12 14
16 18
3
6 9
12 15
18 21
24 27
4
8 12
16 20
24 28
32 36
5
10 15
20 25
30 35
40 45
6
12 18
24 30
36 42
48 54
7
14 21
28 35
42 49
56 63
8
16 24
32 40
48 56
64 72
9
18 27
36 45
54 63
72 81
提示: 1.
參考範例程式4-6,使用巢狀的for迴圈,內外迴圈控制變數均從1到9。 2.
內部迴圈每輸出一個結果就跳一個tab鍵(使用"\t")。
|
||
計算機概論:C/C++程式設計 義守大學電機系 陳慶瀚 |