C言語で数値型(int型, short型, long型, float型, double型)の2次元配列を扱う場合は、表計算のセルをイメージすると分かりやすいです。
例えば以下のような3教科の得点が入力された生徒5人分の表があったとします。

これを2次元配列で表すとこんな感じです。
int tokuten[5][3] = { { 100, 100, 100},
{20, 30, 10},
{50, 60, 50},
{0, 0, 0},
{100, 80, 90} };
1人分の得点が1次元配列だと考えるとしっくりきます。
int tokuten[3] = {100, 100, 100};
2次元配列の場合は、こうした1人分のデータのまとまりが5人分ある感じです。
添え字が2つになるのでまぎらわしいですが、表をイメージして行列の順で添え字がつくと考えると良いでしょう。

サンプルプログラムで2次元配列代入した数値を表示させてみます。
/* まとまった数値を2次元配列で表現 */
#include <stdio.h>
int main(void)
{
int i;
int tokuten[5][3] = { { 100, 100, 100},
{20, 30, 10},
{50, 60, 50},
{0, 0, 0},
{100, 80, 90} };
printf(" 国語 算数 理科\n");
for(i=0; i<5; i++){
printf("%2d人目 %5d%5d%5d\n", i+1, tokuten[i][0], tokuten[i][1], tokuten[i][2]);
}
return 0;
}
実行イメージ
国語 算数 理科
1人目 100 100 100
2人目 20 30 10
3人目 50 60 50
4人目 0 0 0
5人目 100 80 90
行と列の添え字は、それぞれ0から始まるので注意が必要です。
例えば1人目の算数であれば、
tokuten[0][1]
と表します。
以上、数値型の2次元配列イメージでした。

コメント