問 9(提出プログラム名:ex0509a.c)
※上級クラスは必須(中級クラスはできる人だけでよい)
(いずれも加点対象)
この問題は配列を使った練習問題になっています.
以下の動作を行うプログラムを ex0509a.c として作りなさい.
このプログラムでは,最初に 2 つの整数 r, c を読み込み,
続いて r × c 個の整数(0 または 1)を読み込んで順番に 2 次元配列へ格納する.
ここでは,その 2 次元配列の内容は r 行 c 列の行列データであると考える.
そして,この r × c 行列の中に「すべてが 1 の 2 × 2 行列」が何個含まれているかを数えて出力する.
なお,ここでは配列の大きさは SIZE × SIZE とし,SIZE はマクロとして 16 と定義せよ.
そして,この問題では 2 ≦ r, c ≦ SIZE であると仮定してよい.
(例)r = 4, c = 3 で以下のデータであった場合,答えは 4 となる:
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
行数と列数を入力してください:3 4 12 個のデータを入力してください:⏎ 1 1 1 1 1 1 1 0 1 1 1 1 探しているパターンは 4 個見つかりました⏎
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
行数と列数を入力してください:2 2 4 個のデータを入力してください:⏎ 1 1 1 1 探しているパターンは 1 個見つかりました⏎
- 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
行数と列数を入力してください:5 3 15 個のデータを入力してください:⏎ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 探しているパターンは 8 個見つかりました⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上の実行例と出力が違っていることを見落としている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
問 4 ~問 9 は 5/14(火)12:00 までに提出を済ませてください.※23:59 ではないので注意!
(ex0504a.c ~ ex0509a.c を Moodle から提出してください.)
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.
← [ 問 7 (ex0507a.c) ]
← [ 問 8 (ex0508a.c) ]