計算機概論:C/C++程式設計

 

第4. 反覆計算:迴圈

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/cpp

E-mail : pierre@isu.edu.tw   

 


4.3 巢狀的for迴圈

前一節的迴圈用於單一維度(one-dimensional)的反覆計算,例如1100的累加值,我們只需使用一個控制變數,令其隨著迴圈循環從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(rows0變化到4),內部迴圈則執行了20(rows為一個任意值時,columns03共執行4),在內部迴圈的每一次循環,我們計算rowscolumns 的累加值,並將之輸出到螢幕,因此最後我們得到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迴圈,內外迴圈控制變數均從19

2. 內部迴圈每輸出一個結果就跳一個tab(使用"\t")

3. 執行完一輪內部迴圈(輸出9個值)後,輸出換行鍵(endl"\n")


 

計算機概論:C/C++程式設計

義守大學電機系 陳慶瀚 
2001.10.22