二維數組擁有兩個下標,形式為 類型 數組名[常量表達式1][常量表達式2]。例如 int a[3][4]; 宣告一個 3 行 4 列的整數矩陣,共 12 個元素,下標範圍為 a[0][0] ~ a[2][3]。概念上是平面結構,但實際記憶體是線性連續的,C 語言採用「列主序」,即先存完第 0 行,再存第 1 行,依此類推。
元素以 數組名[下標1][下標2] 訪問,下標可為整型常量、變量或表達式。注意區別:宣告時方括號內是維度長度(常量),使用時是具體位置索引(可為變量)。
假設 5 位學生、3 門課程,用 a[5][3] 存成績,v[3] 存各科平均,l 存總平均。程式採用雙重迴圈:外層跑科目,內層累加該科所有學生分數,求平均後歸零累加器,最後計算總平均。
void main() {
int i, j, s = 0, l, v[3], a[5][3];
printf("input score\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 5; j++) {
scanf("%d", &a[j][i]);
s += a[j][i];
}
v[i] = s / 5;
s = 0;
}
l = (v[0] + v[1] + v[2]) / 3;
printf("math:%d\nc languag:%d\ndbase:%d\n", v[0], v[1], v[2]);
printf("total:%d\n", l);
}
輸出格式清晰展示各科平均與總平均。