課題 [8] 関数①(8/9)

問 8(提出プログラム名:ex0808.c)

このプログラム(ex0808.c)をダウンロードし,その中の関数 print_matrix を完成させなさい
関数 print_matrix では,引数として与えられた 2 次元配列 a について,それを実行例のように正方行列のかたちで出力するものとする.ただし,整数の出力幅は 4 桁分とし,行ごとに合計値も出力するものとする.なお,この問題では if 文を使ってはいけません(if 文を使おうとする人が稀にいますが,if 文は不要です)

また,関数 main の内容は一切書き換えないこと.
あわせて,この問題ではマクロの定義部分を除いて 3 と直接書いてはいけません

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
    ※出力する各整数を 4 桁分の幅で出力できているか確認せよ.
     printf("  %d", a[i][j]); という具合いに強引に空白で調整するのは誤りである.
行列データ(3 x 3)を入力してください:
1 2 3 4 5 6 7 8 9
   1    2    3 [合計   6]
   4    5    6 [合計  15]
   7    8    9 [合計  24]
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
行列データ(3 x 3)を入力してください:
1 1 1 1 1 1 1 1 1
   1    1    1 [合計   3]
   1    1    1 [合計   3]
   1    1    1 [合計   3]
  • 【プログラムの実行結果】(その3)赤字は実行時にキーボードから入力する内容
行列データ(3 x 3)を入力してください:
1 1 1 0 1 1 0 0 1
   1    1    1 [合計   3]
   0    1    1 [合計   2]
   0    0    1 [合計   1]

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
  (例1)整数の出力幅が 4 桁分になっていない.
  (例2)出力されている行ごとの合計値が違っている.
マクロを使わずに直接 3 や 2 と書いてしまっている.
■ main 関数を書き換えてしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 問 9 (ex0809.c) ]