第6回課題

  1. [pe6-1.c] (必須) int 型の一次元配列とその要素数を受け取って, 配列内の値の総和を求めて返す関数 arraySum を書きなさい。

    さらに,関数 main から 関数 arraySum を呼び出して, 各月の日数 (うるう年でない; すなわち2月の日数は28日) から 1 年間の日数を求めて出力するプログラムにしなさい。

    各月の日数を格納する配列は main 内で用意して,arraySum に渡すこと。 arraySum の戻り値(一年間の日数)を表示するコードも main に書くこと。 また,関数 arraySum が,パラメータを通じて main 内の配列を書き換えることのできないプログラムにすること。

  2. [pe6-2.c] (必須) 1 x 1 から 9 x 9 までの九九の結果を2次元配列に格納し,表示するプログラムを作りなさい。

  3. [pea6-1.c] リスト 2.10 の関数 printArray を,2 行 3 列の二次元配列のみならず,任意の行数の二次元配列を受け取って内容を出力する関数に書き換えなさい。なお,列数は 3 列に固定である。 そのためには,printArray のパラメータに二次元配列の行数 n を受け取るパラメータを追加して,関数定義の頭部を
    void printArray(int a[][3], int n)
    とするとともに,関数本体に必要な変更を加えればよい。

    また,リスト 2.10 のプログラムを, 変更した printArray を用いて array1 と array2 の内容を表示した後で,さらに 3 行 3 列の配列 array3 (値は任意に与えてよい)の内容も表示するプログラムとしなさい。

  4. [pea6-2.c] ある値が表の中に存在するかどうかを出力するプログラムを作りなさい。

    プログラムにおいて,表は2行4列の二次元配列で実現することとし, 二次元配列には予め次の値を入れておくこととする。

    2 3 5 7
    11 13 17 19

    探す値はキーボードから入力することとし, 値が二次元配列に存在すれば,このプログラムは

    n was found.
    のように出力し,存在しなければ
    n was not found.
    のように出力するようにしなさい。 ここで,n は入力した値である。 例えば,5 の入力に対しては 5 was found. のように出力されるようにする。

    なお,見つかった値が2次元配列内のどこにあるか,も表示できればなおよい。