6.4 多維陣列
有時資料是「表格」的形狀。例如棋盤有 8×8 的格子,答題卡有 N 行 M 列的選項。一維陣列放不下這種二維結構,所以我們需要多維陣列。
二維陣列的宣告:
int a[3][4]; // 3 列 4 欄的整數表格
你可以想像成:
- 3 個陣列,每個陣列有 4 個元素
- 訪問方式:
a[列][欄],例如a[0][2]是第 0 列第 2 欄
索引範圍:
- 列的索引:0 ~ 2
- 欄的索引:0 ~ 3
三維及以上:
int cube[5][5][5]; // 5×5×5 的立方體
char matrix[10][20]; // 10×20 的字元矩陣
¶範例程式碼
#include<iostream>
using namespace std;
int main() {
// 宣告一個 3 列 4 欄的陣列
int a[3][4];
// 用巢狀迴圈填充
// 外層迴圈:走訪每一列
// 內層迴圈:走訪該列的每一欄
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = i * 4 + j; // 填充 0, 1, 2, ..., 11
}
}
// 輸出矩陣
cout << "Matrix:\n";
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << " ";
}
cout << '\n';
}
return 0;
}
執行結果:
Matrix:
0 1 2 3
4 5 6 7
8 9 10 11
動手試試看:把程式碼改成讀入一個矩陣,然後輸出它的轉置(列變欄,欄變列)。