练习4-6 猜数字游戏 (15 分)
1. 题目摘自
https://pintia.cn/problem-sets/12/problems/283
2. 题目内容
猜数字游戏是令游戏机随机产生一个 100
以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(Too big
),还是小了(Too small
),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果 1
次猜出该数,提示 Bingo!
;如果 3
次以内猜到该数,则提示 Lucky You!
;如果超过 3
次但是在 N(>3)
次以内(包括第 N
次)猜到该数,则提示 Good Guess!
;如果超过 N
次都没有猜到,则提示 Game Over
,并结束程序。如果在到达 N
次之前,用户输入了一个负数,也输出 Game Over
,并结束程序。
输入格式:
输入第一行中给出两个不超过 100
的正整数,分别是游戏机产生的随机数、以及猜测的最大次数 N
。最后每行给出一个用户的输入,直到出现负数为止。
输出格式:
在一行中输出每次猜测相应的结果,直到输出猜对的结果或 Game Over
则结束。
输入样例:
58 4
70
50
56
58
60
-2
输出样例:
Too big
Too small
Too small
Good Guess!
3. 源码参考
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int m, n, d;
int i = 0;
cin >> m >> n;
do
{
i++;
cin >> d;
if (d < 0)
{
cout << "Game Over" << endl;
return 0;
}
else if (d > m)
{
cout << "Too big" << endl;
}
else if (d < m)
{
cout << "Too small" << endl;
}
else
{
if (i == 1)
{
cout << "Bingo!" << endl;
}
else if (i <= 3)
{
cout << "Lucky You!" << endl;
}
else
{
cout << "Good Guess!" << endl;
}
return 0;
}
if (i == n)
{
cout << "Game Over" << endl;
return 0;
}
} while (1);
return 0;
}