一維陣列(One Dimension Array):是由一組 相同資料型態(例如:int )的變數集合所組成。(例如:單次小考成績單 ...)
二維陣列(Two Dimension Array):是由多個 相同資料【型態】與【大小】的 一維陣列 所組合而成。(例如:月考多科成績單 ...)
二維陣列(Two Dimension Array)宣告:資料型態 陣列名稱[列的大小][行的大小] (例如: int score[35][5] , 其中 int 為資料型態,score 為陣列名稱,35 為列的大小(學生人數),5為行的大小(五科成績分數)。
二維陣列 score 有 35組一維陣列,分別為 score [0][ ]、 score [1][ ]、 score [2][ ]、... ... score [33][ ]、 score [34][ ] ,列的索引 為 0~34
二維陣列 每組一維陣列 各有 5個元素,例如:第一組陣列 score [0][0]、 score [0][1]、 score [0][2]、 score [0][3]、 score [0][4] ,行的索引 為 0~4
二維陣列(Two Dimension Array)初始化:陣列宣告後,元素可能為不可預知的資料,所以必須事先設定為特定的資料值。
int a[3][4]= { { 1, 2, 3, 4 } , { 5, 6, 7, 8 } , { 2, 4, 6, 8 } }
數學上,一個 m * n 的矩陣是一個由 m列(row) n行(column)元素所組成的矩形陣列。矩陣裡的元素可以是數字或符號。下圖左方是一個由6個數字元素,所構成的3列2行的矩陣。矩陣A的轉置(transpose)則是將 A的橫行寫為AT的縱列 、把A的縱列寫為AT的橫行,即為列與行的互換,所以 m * n 的矩陣 經過轉置 將變成 n * m 2列3行的矩陣
#include <iostream> // 引入 輸入輸出指令(函數)標頭檔
using namespace std; // 省略 名稱空間 std的簡寫方式
int main() { ... ... } // 主程式(函數)範圍
int matrix1[10][10],matrix2[10][10]; // 宣告二維陣列( 儲存最多 10*10 共10組一維陣列,每組一維陣列有10個元素)
int row,col; // 宣告二維陣列變數( 列 row、行 col 數目 )
int i,j; // 宣告巢狀迴圈 i,j 變數(char:字元、int:整數、double:浮點數、bool:布林值)
// 邏輯運算子(&& 而且、 || 或者), 關係運算子(== 相等、!= 不相等、>= 大於等於、<= 小於等於)
while(1==1) { // 外層重複 迴圈 while( 1==1 無窮執行 )
cout << " 請輸入矩陣列數:"; // 外層重複 迴圈 while 輸出字串(使用雙引號)到螢幕
cin >> row; // 外層重複 迴圈 while 輸入數字 到 變數 row
for(i=0;i<row;i=i+1) { // 中層重複 迴圈 for 控制列 row
for(j=0;j<col;j=j+1) { // 內層重複 迴圈 for 控制行 col
element=rand()%9+1; // 內層重複 迴圈 亂數 rand() 產生 1~9 數字
matrix1[i][j]=element; // 內層重複 迴圈 亂數數字 儲存於 二維陣列
} // 內層重複 迴圈 for} 結束
} // 中層重複 迴圈 for} 結束
cout << " 轉置矩陣陣列 " << col << "x" << row << ":" << endl;
for(i=0;i<row;i=i+1) {
for(j=0;j<col;j=j+1) {
element=matrix1[i][j];
matrix2[j][i]=element;
}
}
} // 外層重複 迴圈 while } 結束
system("pause"); // 程式暫停指令
#include <stdlib.h> 引入 程式暫停指令 標頭檔