【 全体の目次 】

【 ←前に戻る この章の目次 次に進む→ 】


二次元配列


表データを扱うのに便利な二次元配列について学びます。

<二次元配列>

午前の売り上げ
午後の売り上げ

45000

31000

56000

43000

38000

50000

42000

39000

54000

66000

35000

75000

58000

30000

上のような表は、曜日と時間帯という2つの要素から成り立っており、これを配列として表現するには添字が2つから成る二次元配列を用いて、次のように宣言します。

 

また、Cの配列では、先頭要素が0から始まっているため、月曜日のデータは0行の要素の入り、午前のデータは0列の要素に入ることに注意して下さい。

 

これらのことから、「午前午後の1週間分の売り上げデータをuriage[][]に初期化データとして与えておき、1日分の合計(午前午後の合計)を求めて表示させる」プログラムは次のようになります。

 

<二次元配列の初期化>

二次元配列でも上のプログラムのように宣言時にデータの初期化を行うことができます。

二次元配列の初期化データは行単位で{}で囲み、カンマ(,)で区切ります。

 

<二次元配列の多重ループ>

二次元配列で扱うループ処理には、多重ループが用いられます。理由は「繰り返し処理を繰り返す」からです。つまり、上のプログラムで言えば、ある日の午前午後の合計繰り返し処理をさらに7日分繰り返すというものです。

(1)まず、外側のループに入ります。そうすると、最初は行要素iが0(i=0 )となります。

(2)そして、i=0で内側のループに入り、jを0〜1までくり返す間に、そのつどuriage[0][j]に入っている値をディスプレイの横方向に表示し、またgoukeiにuriage[0][j]に入っている値を加算していきます。

(3)その繰り返しが終わると、再び外側のループに戻り、printf(" = %8d\n",goukei)を実行し、行要素0行の合計値を出力します。そして、今度はi=1で再び内側のループに入り、同じように作業します。

(4)この作業は、行要素が6(i<7なので、7は含まれない)になるまで繰り返します。

※ 何度も言いますが、一次元配列でも二次元配列でも、配列要素の配列番号(添字)は0から用意されていることに注意して下さい。

二次元配列で使われる多重ループは重要な概念なので、しっかりと理解して下さい。 

<プログラムの流れ>

フローチャートは、次のようになります。

 

では、実際にお弁当の売り上げ個数を求めるプログラムを次から作っていきましょう。 

次へ!