C 语言编程题,编写的简易猜数字游戏的三种不同实现方法。每种方法的核心都是玩家猜测一个随机生成的数字,程序会根据玩家的输入给出反馈。每种方法使用了不同的编程思路。

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

推荐文档

相关文档

大家感兴趣的内容

随机列表