#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int secretNumber, guess, numberOfTries = 0;
// 初始化随机数种子
srand(time(0));
// 生成一个1到100之间的随机数
secretNumber = rand() % 100 + 1;
printf("我已经想好了一个1到100之间的数字。你能猜到是哪个吗?\n");
do {
printf("请输入你的猜测:");
scanf("%d", &guess);
numberOfTries++;
if (guess > secretNumber) {
printf("太高了!再试一次。\n");
} else if (guess < secretNumber) {
printf("太低了!再试一次。\n");
} else {
printf("恭喜你!猜对了!数字就是 %d。\n", secretNumber);
printf("你一共猜了 %d 次。\n", numberOfTries);
}
} while (guess != secretNumber);
return 0;
}
这个程序首先通过srand(time(0))
初始化随机数生成器的种子,确保每次运行程序时生成的随机数都不同。然后,使用rand() % 100 + 1
生成一个1到100之间的随机数。
之后,程序进入一个do-while
循环,让用户输入他们的猜测。程序会根据用户的猜测与秘密数字的比较结果给出相应的提示。如果猜测太高或太低,程序会提示用户并允许他们再次尝试。如果猜对了,程序会输出恭喜信息以及用户猜测的次数,并通过break
语句(在这个例子中没有显式写出,因为do-while
循环在guess != secretNumber
为假时自然结束)退出循环。
在实际编程中,应始终检查scanf
等输入函数的返回值,以确保输入操作成功执行。不过,为了保持示例的简洁性,这里省略了这一步。