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

問 7(提出プログラム名:ex0807.c)

このプログラム(ex0807.c)をダウンロードし,その中の関数 find_x を完成させなさい
関数 find_x では,引数として与えられた配列 a と整数 x について,配列 a の中で x と同じ値を探し出して実行例のように出力するものとする.ただし,x と同じ値が複数見つかるような場合は,最初に見つかったもの(添字の小さい方)を出力するものとする.
ただし,関数 main の内容は一切書き換えないこと.
また,この問題ではマクロの定義部分を除いて 5 と直接書いてはいけません

【ヒント】関数 find_x の作り方の一例を以下に示します(他の方法もあります):
 ① for ( i = 0; i < SIZE; i++ ){ ... } で繰り返しながら(※ i <= SIZE ではない),
  { ... } の中で a[i]x と等しいかどうかを調べます.
  そして,もし等しければ
  「xa[i] として見つかった」ことを printf で出力し,
  さらに break; で for 文から脱出(それ以降を打ち切り)します.
 
 ② 上の for 文が終わった後に(※途中ではない),
  i の値を調べ, i == SIZE ならば途中で break による打ち切りが
  行われなかった(※1)ことになるので「x は見つからなかった」ことを printf で出力します.

 (※1) for 文では i の値は 0 から順に 1 ずつ増えていって,SIZE に等しくなった時点で終了となりますが,もしも途中で break による脱出が行われていれば,i の値は SIZE とは等しくないことになります.

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
5 個の整数を入力してください:52 6 22 5 22
探している整数を入力してください:22
22 は a[2] として見つかりました
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
5 個の整数を入力してください:52 6 22 5 22
探している整数を入力してください:100
100 は見つかりませんでした
  • 【プログラムの実行結果】(その3)赤字は実行時にキーボードから入力する内容
5 個の整数を入力してください:1 1 1 1 1
探している整数を入力してください:1
1 は a[0] として見つかりました

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
  (例)見つかった位置(添字)が違っている.
■ 配列として利用できない添字を使っている:a[SIZE] という変数は使えません
 (利用できるのは a[0], a[1], …, a[SIZE-1] の範囲になります.)
マクロを使わずに直接 5 や 4 と書いてしまっている.
■ main 関数を書き換えてしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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