题目
编写一个“猜数字”互动小游戏:程序在 1~100 之间随机生成一个秘密整数,用户输入猜测的数字,程序提示“猜大了”或“猜小了”,直到猜中为止,输出总共猜测的次数。
输入格式:多次输入一个 1~100 之间的整数猜测,直到猜中。
输出格式:每次根据比较结果输出 猜大了、猜小了 或 猜中了,并输出猜测总轮数。
数据范围与约定:目标随机数在 1~100 之间。
思路与算法
1. 伪随机数种子初始化
使用当前时间作为种子:srand((unsigned)time(null));,避免每次运行生成完全相同的伪随机数序列。
2. 范围缩放与循环交互
通过 int secret = rand() % 100 + 1; 限制在 1~100 闭区间。用 while (1) 循环读取输入,根据大小关系给出分支反馈,猜中后 break 退出。
完整程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 使用固定基准或输入交互模拟猜数字游戏
// 固定靶值 82
int secret = 82;
int attempts = 0;
while (sc.hasNextInt()) {
int guess = sc.nextInt();
attempts++;
if (guess < secret) {
System.out.println("low");
} else if (guess > secret) {
System.out.println("high");
} else {
System.out.println("ok " + attempts);
break;
}
}
}
}运行示例
输入:
50
75
88
82输出:
low
low
high
ok 4