HM032 猜秘密数

HM032 猜秘密数

HM032 猜秘密数

来源: 第 32 集 程序流程结构-循环结构案例-猜数字

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

系统先确定一个 \(1\) 到 \(100\) 之间的秘密数,玩家反复猜测。猜错了要提示偏大还是偏小,然后继续猜;猜对了提示胜利并立刻结束。实现上用 while (1) 包住“读入一次猜测并判断”,猜对时用 break 跳出这层循环。不要把秘密数打印出来。

秘密数的生成规则与 rand() % 100 + 1 相同:rand() % 100 得到 \([0,99]\),再加 \(1\) 才是 \([1,100]\)。本题由评测提供这个余数,避免未固定种子时每次结果不同(课堂上用 srand((unsigned int)time(NULL)) 并包含 <ctime> 才能按系统时间换种子;OJ 上不要自己 rand)。

判断顺序:

  • 猜测 \(> \) 秘密数:输出 猜测过大
  • 否则若猜测 \(< \) 秘密数:输出 猜测过小
  • 否则:输出 恭喜您猜对了,然后 break

题目保证猜测序列里一定能猜中,猜中后忽略后面可能多出来的数字。

输入格式

第一行一个整数 \(raw\)(\(0 \le raw \le 99\)),表示 rand() % 100 的结果,秘密数为 \(raw + 1\)。

第二行若干个整数,为玩家依次给出的猜测,每个都在 \(1\) 到 \(100\) 之间。

输出格式

对每次尚未猜中时的猜测输出一行提示,猜中的那次输出 恭喜您猜对了 后停止。每行末尾换行。不要输出秘密数。

样例

输入 #1

41
80 10 70 50 40 45 42

输出 #1

猜测过大
猜测过小
猜测过大
猜测过大
猜测过小
猜测过大
恭喜您猜对了

输入 #2

0
1

输出 #2

恭喜您猜对了

说明

样例 1:\(41+1=42\)。先大后小,区间不断收窄,最后猜中 \(42\)。样例 2:余数为 \(0\) 时秘密数是 \(1\),第一次就猜中。

可以把猜测次数限制成 \(5\) 次作为扩展,本题不要求。

信息

ID
1031
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者