問 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 上でインデントを自動で揃える作業をやっていない).
← [ 問 7 (ex0807.c) ]
ミスが無いことを確認したら次の問題へ → [ 問 9 (ex0809.c) ]