第7回課題

  1. [pe7-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 (値は任意に与えてよい)の内容も表示するプログラムとしなさい。

  2. [pe7-2.c] (必須) コメントに従い,下線部 (1) から (10) に適当なものを入れて,プログラムを完成させなさい。
    #include <stdio.h>
    
    int main()
    {
        int i = 10;
        int __(1)__ ;         /* ポインタ変数 ptr の宣言 */
    
    /* 変数 i のアドレスを 2 通りの方法で表示する */
        printf("address of i: __(2)__\n", __(3)__ i);
        __(4)__ = __(5)__ ;   /* 変数 ptr への初期値設定 */
        printf("address of i: __(6)__\n\n", ptr);
    
    /* 変数 i の値を 2 通りの方法で表示する */
        printf("i: __(7)__\n", i);
        printf("i: __(8)__\n\n", __(9)__ ptr);
    
    /* ptr を使って変数 i の値を 10 増やし,その値を表示する */
        __(10)__ += 10;
        printf("i: %d\n", i);
    
        return 0;
    }
    

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

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

    2 13 5 17
    11 3 7 19

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

    n was found at (row, col).
    のように出力し,存在しなければ
    n was not found.
    のように出力するようにしなさい。 ここで,n は入力した値であり,row と col は n が入った配列要素の添字とする。 例えば,5 の入力に対しては 5 was found at (0, 2). のように出力されるようにする。

    なお,このプログラムでは main 以外の関数は定義しないでよい。