練習 1(提出プログラム名:p1301.c)
まず,このプログラム(p1301.c)をダウンロードしなさい.
p1301.c ではサンプルプログラム 1 (sample1.c) を元にして数当てゲームを作ろうとしている.
以下の点に注意して,これを完成させなさい.
【サンプルプログラム 1 との違い】
● データファイルに書いてあった整数(便宜上,x とする)は画面に表示させないこと.
● 次の処理(1),(2)を正解するまで繰り返すこと(※いったん while(1) で無限ループにしておくとよい):
(1)何回目の入力なのかを画面に表示させた後(実行例を参照),
整数を 1 つ(キーボードから)読み込む(便宜上,y とする).
(2)x と y が等しければ「正解です」と表示して繰り返しを終了する(※break を使うとよい).
x < y ならば「もっと小さいです」と表示し,逆ならば「もっと大きいです」と表示する.
【注意】
例年,上の (1) の処理について,毎回「1 回目」と表示させてしまうというミスが多い.
(去年は 10 人もいました.)これに該当しないようくれぐれも注意せよ.
【データファイルの自動生成】
自分でデータファイルを用意して数当てゲームをやってもつまらないと思うので,乱数を使ってデータを自動的に作り出すプログラムをこちらで用意している.
このプログラム(make_data1.c)をダウンロードしてコンパイルし,次のように実行せよ(※Mac の人は a ではなく ./a.out となる):
a > data1.txt
すると,適当な値(1 ~ 1000 の間)がファイル data1.txt へ書き込まれる.
【ヒント】
繰り返しの処理では,事前に繰り返しを行う回数が分かりませんので while(1) でいったん無限ループにしておいて,x == y の場合に break; でループを脱出するという方法をとるとよいでしょう.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
※出力する回数が毎回「1 回目」になってしまっていないか注意せよ.
データファイル名を入力してください:data1.txt 1 回目:整数を入力してください:100 もっと大きいです⏎ 2 回目:整数を入力してください:150 もっと小さいです⏎ 3 回目:整数を入力してください:125 もっと小さいです⏎ 4 回目:整数を入力してください:115 もっと大きいです⏎ 5 回目:整数を入力してください:120 もっと大きいです⏎ 6 回目:整数を入力してください:122 もっと大きいです⏎ 7 回目:整数を入力してください:124 もっと小さいです⏎ 8 回目:整数を入力してください:123 正解です!⏎
※この例はあくまでも答えが 123 の場合です.
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
データファイル名を入力してください:data1.txt 1 回目:整数を入力してください:123 正解です!⏎
※この例はあくまでも答えが 123 の場合です.
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 上の指示に従った動作になっていない.
■ ヒントを見落としていて,プログラムが必要以上に複雑になっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
ミスが無いことを確認したら次の問題へ → [ 練習 2 (p1302.c) ]