2402_83986550 2024-03-29 10:33 采纳率: 0%
浏览 7

猜数字,从 [0-100]中随机生成一个数字,如果猜错了就提示大了或小了,如果猜对了,就显示猜了多少次。

感恩感谢 1234567890000110/9828228662717282

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-29 10:33
    关注

    引自免费微信小程序:皆我百晓生

    在C语言中,实现猜数字的功能可以通过以下步骤完成:

    首先,我们需要定义两个变量guesscount,分别用于存储猜测次数和猜测结果。初始值分别为0和0。

    int guess = 0;
    int count = 0;
    

    然后,我们定义一个函数generateNumber(),这个函数将生成一个随机数并返回。在这个函数中,我们将使用C标准库中的rand()函数来生成一个介于0和100之间的随机整数,然后将这个随机数除以9828228662717282,得到的结果就是猜测次数(即乘法运算后的结果)。

    double randomNumber = rand() /RAND_MAX;
    int guessCount = (int)(randomNumber * 9828228662717282);
    

    接下来,我们定义一个函数displayGuess(),这个函数将在每次猜测结束后,更新错误信息和显示猜了多少次。

    void displayGuess(int guessCount) {
        int correctGuessCount = guessCount - count;
    
        if (correctGuessCount < 0) {
            printf("You guessed too few times!\n");
            count = 0;
        } else if (correctGuessCount > guessCount) {
            printf("You guessed too many times!\n");
            count = guessCount;
        }
    
        printf("Congratulations! You correctly guessed the number.\n");
    
        if (guessCount == count) {
            printf("You successfully guessed %d times.\n", count);
        } else if (guessCount < count) {
            printf("It's a bit closer, but you got it wrong: %d \n", guessCount);
        } else {
            printf("Wow, that's close! It's a bit further, but you still got it wrong: %d\n", guessCount);
        }
    }
    

    现在,我们可以在主程序中调用generateNumber()函数来生成一个随机数,然后调用displayGuess()函数来显示猜数字的详情。注意:在实际运行时,由于C标准库中rand()函数的随机性,每个独立的运行可能会产生不同的随机数,因此我们需要在每次调用displayGuess()函数后重置count变量,这样就能保证输出的猜测次数始终为0。

    int main() {
        generateNumber();
        displayGuess(0);
        return 0;
    }
    

    完整的代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int guess = 0;
    int count = 0;
    
    // Function to generate a random number between 0 and 100
    double generateNumber() {
        double randomNumber = rand() / RAND_MAX;
        int guessCount = (int)(randomNumber * 9828228662717282);
    
        if (guessCount < 0) {
            printf("You guessed too few times!\n");
            count = 0;
        } else if (guessCount > guessCount) {
            printf("You guessed too many times!\n");
            count = guessCount;
        }
    
        printf("Congratulations! You correctly guessed the number.\n");
    
        if (guessCount == count) {
            printf("You successfully guessed %d times.\n", count);
        } else if (guessCount < count) {
            printf("It's a bit closer, but you got it wrong: %d \n", guessCount);
        } else {
            printf("Wow, that's close! It's a bit further, but you still got it wrong: %d\n", guessCount);
        }
    
        return randomNumber;
    }
    
    void displayGuess(int guessCount) {
        int correctGuessCount = guessCount - count;
    
        if (correctGuessCount < 0) {
            printf("You guessed too few times!\n");
            count = 0;
        } else if (correctGuessCount > guessCount) {
            printf("You guessed too many times!\n");
            count = guessCount;
        }
    
        printf("Congratulations! You correctly guessed the number.\n");
    
        if (guessCount == count) {
            printf("You successfully guessed %d times.\n", count);
        } else if (guessCount < count) {
            printf("It's a bit closer, but you got it wrong: %d \n", guessCount);
        } else {
            printf("Wow, that's close! It's a bit further, but you still got it wrong: %d\n", guessCount);
        }
    }
    
    int main() {
        generateNumber();
        displayGuess(0);
        return 0;
    }
    

    这段代码生成了一个随机数,然后调用displayGuess()函数显示猜数字的过程。注意,在实际使用时,你可能需要根据需要调整 generateNumber() 函数的逻辑和 displayGuess() 函数的参数设置。例如,你可能想要在每次成功猜到数字之后立即更新错误信息,或者在所有错误情况下都显示 "It's a bit closer",而不是等到最后一次正确猜到为止。这些修改都可以通过适当调整函数内部的判断语句和字符串格式化来实现。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月29日