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; }