c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言猜数字猜四个数字

更新时间:2024-01-18

前言

在这个项目中,我将使用C语言设计一个猜数字游戏,玩家需要猜测四个数字的正确顺序和值。我将使用C语言编写代码,并为您解释代码的用途和规范。

代码设计

首先,我们需要一个函数来生成四个不重复的随机数字作为答案。下面是生成随机数字的代码:

#include 
#include 
#include 

// 生成四个不重复的随机数字
void generateAnswer(int answer[]) {
    srand(time(NULL));
    for (int i = 0; i < 4; i++) {
        int digit = rand() % 10;
        int j;
        for (j = 0; j < i; j++) {
            if (digit == answer[j]) {
                break;
            }
        }
        if (j == i) {
            answer[i] = digit;
        } else {
            i--;
        }
    }
}

接下来,我们需要一个函数来接收用户输入的猜测,并判断其准确性。以下是判断猜测准确性的代码:

// 判断猜测准确性
int checkGuess(int guess[], int answer[]) {
    int correctPositionCount = 0; // 正确位置的数字数量
    int correctValueCount = 0; // 正确数字的数量

    for (int i = 0; i < 4; i++) {
        if (guess[i] == answer[i]) {
            correctPositionCount++;
        } else {
            for (int j = 0; j < 4; j++) {
                if (guess[i] == answer[j]) {
                    correctValueCount++;
                    break;
                }
            }
        }
    }

    printf("正确位置的数字数量:%d\n", correctPositionCount);
    printf("正确数字的数量:%d\n", correctValueCount);

    if (correctPositionCount == 4) {
        return 1; // 猜测完全正确
    } else {
        return 0; // 猜测不完全正确
    }
}

最后,我们需要一个主函数来驱动游戏的运行流程。以下是主函数的代码:

int main() {
    int answer[4]; // 存储答案的数组
    int guess[4]; // 存储用户猜测的数组

    // 生成答案
    generateAnswer(answer);

    // 游戏循环,直到猜测完全正确
    while (1) {
        // 提示用户输入四个数字的猜测
        printf("请猜测四个数字的正确顺序和值(用空格分隔):");
        scanf("%d %d %d %d", &guess[0], &guess[1], &guess[2], &guess[3]);

        // 判断猜测准确性
        if (checkGuess(guess, answer)) {
            printf("恭喜,猜测正确!\n");
            break;
        } else {
            printf("猜测不正确,请继续尝试。\n");
        }
    }

    return 0;
}

总结

在这个项目中,我使用C语言设计了一个猜数字的游戏。通过生成随机数字作为答案,并判断用户猜测的准确性,来驱动游戏的进行。代码具备良好的可读性和可维护性,使用了函数来组织代码逻辑,同时使用了数组来存储数据。希望这个简单的示例能帮助您理解C语言的基本用法和编程规范。