頭の中で1から100までの数字を考えてください。次に、プログラムは最小限の数の質問をし、回答に基づいて数を決定する必要があります。プログラムの質問形式は NN (<, =, >) ですか? この質問には 3 つの方法で答えることができます: < は数値がコンピューターの推測よりも小さいことを示し、= はプログラムが数値を正しく推測したことを意味し、> は数値がコンピューターの推測よりも大きいことを意味します。ユーザーがこのゲームを何度でもプレイできるようにします。ユーザーが終了する準備ができたら、推測の平均数/ゲームを出力します。
別の関数を使用してゲームをプレイします。その関数を main() から必要に応じて繰り返し呼び出します。
したがって、出力は次のようになります。
1 から 100 までの数字を推測し、いくつかの質問に答える準備をしてください。
50(<、=、>)ですか?<
25 (<,=,>) ですか? <
12(<,=,>)ですか?>
18(<,=,>)ですか?>
21 (<,=,>) ですか? <
19(<,=,>)ですか?>
あなたの推測は20です
いい試合でした!もう一度プレイしますか (y/n) ? y
1 から 100 までの数字を推測し、いくつかの質問に答える準備をしてください。
50(<、=、>)ですか?>
75(<,=,>)ですか?<
62(<,=,>)ですか?>
68(<,=,>)ですか?>
71(<,=,>)ですか?=
いい試合でした!
もう一度プレイしますか (y/n) ? n
これは私がこれまでに持っているものです。ただし、関数 playGame() は実行されません。計算なしで値50が得られます。
while ((round = 0)){
printf("How about %d", guess);
scanf("%c", &ans);
if((ans = '<')){
upper = guess;
guess = (upper+lower)/2;
}
else if ((ans = '>')){
lower = guess;
guess = (upper+lower)/2;
}
else {
round = 1;
printf("Your number is %d", guess);
}
}
return guess;
}