1、使用循环和条件语句
常见的实现方式,使用 while
循环来控制游戏进行,并通过简单的条件语句检查用户的猜测。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int number, guess, attempts = 0;
int maxAttempts = 10;
// 初始化随机数种子
srand(time(0));
number = rand() % 100 + 1; // 生成 1 到 100 之间的随机数
printf("欢迎来到猜数字游戏!\n");
// 猜数字逻辑
while (attempts < maxAttempts) {
printf("请输入你的猜测(第 %d 次):", attempts + 1);
scanf("%d", &guess);
attempts++;
if (guess < number) {
printf("你的猜测太小了!\n");
} else if (guess > number) {
printf("你的猜测太大了!\n");
} else {
printf("恭喜你,猜对了!\n");
break;
}
if (attempts == maxAttempts) {
printf("很遗憾,你没有猜对。正确的数字是 %d。\n", number);
}
}
return 0;
}
2、使用递归
使用递归函数来实现游戏的逻辑。每次递归调用都表示一次新的猜测,递归会一直进行直到猜对或者达到最大尝试次数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void guessNumber(int number, int attempts, int maxAttempts) {
int guess;
if (attempts >= maxAttempts) {
printf("很遗憾,你没有猜对。正确的数字是 %d。\n", number);
return;
}
printf("请输入你的猜测(第 %d 次):", attempts + 1);
scanf("%d", &guess);
if (guess < number) {
printf("你的猜测太小了!\n");
guessNumber(number, attempts + 1, maxAttempts);
} else if (guess > number) {
printf("你的猜测太大了!\n");
guessNumber(number, attempts + 1, maxAttempts);
} else {
printf("恭喜你,猜对了!\n");
}
}
int main() {
int number;
int maxAttempts = 10;
srand(time(0));
number = rand() % 100 + 1;
printf("欢迎来到猜数字游戏!\n");
guessNumber(number, 0, maxAttempts);
return 0;
}
3、使用 do-while 循环
使用 do-while
循环来保证至少进行一次猜测,然后根据条件判断是否继续。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int number, guess, attempts = 0;
int maxAttempts = 10;
// 初始化随机数种子
srand(time(0));
number = rand() % 100 + 1; // 生成 1 到 100 之间的随机数
printf("欢迎来到猜数字游戏!\n");
// 使用 do-while 循环进行游戏
do {
printf("请输入你的猜测(第 %d 次):", attempts + 1);
scanf("%d", &guess);
attempts++;
if (guess < number) {
printf("你的猜测太小了!\n");
} else if (guess > number) {
printf("你的猜测太大了!\n");
} else {
printf("恭喜你,猜对了!\n");
break;
}
} while (attempts < maxAttempts);
// 当达到最大尝试次数时,输出正确答案
if (attempts == maxAttempts && guess != number) {
printf("很遗憾,你没有猜对。正确的数字是 %d。\n", number);
}
return 0;
}