C:猜数游戏

时间:2015-11-14 08:46:03

标签: c random srand

如何在数字猜谜游戏中定义我希望用户猜出的数字?

我需要遵循程序的两个示例运行,粗体是用户的输入:

  1. 好的,我在考虑一个数字。试着猜一下。 你猜?的 50
    太高了!
    你的猜测?的 12
    太低! 你的猜测?的 112
    非法猜测。你的猜测必须在1到100之间 再试一次。你的猜测? - 20
    非法猜测。你的猜测必须在1到100之间 再试一次。你的猜测?的 23

    *** ***** CORRECT

  2. 想再玩一次?的ý

    好的,我在考虑一个数字。试着猜猜它。你的猜测? 85
    太高了!你的猜测? 12
    太低了!你的猜测?的 57

    *** ***** CORRECT

  3. 当我/用户在第一次运行中输入数字23时,我无法让我的脚本输出***CORRECT*****。当我输入50,12,112和-20时,我得到了正确的响应,但没有得到23.输入23后,我得到“太低了!你的猜测?” (我没有尝试过第二次运行,因为我需要确保第一次运行才能跟踪样本。)

    这是我所拥有的片段:

    void guessGame() 
    {
    int num = 23;
    int guess = 0;
    int count = 1;
    count = 1;
    
    srand((unsigned int)time(NULL));
    num = rand() % 100 +1;
    
    printf("OK, I am thinking of a number. Try to guess it.\n");
    printf("Your guess?\n");
    scanf("%d",&guess);
    
    while(guess != num && count != 6)
    {
        if(guess > 100 || guess < 1)
        {
            printf("Illegal guess. Your guess must be between 1 and 100.\n");
            printf("Try again. Your guess?\n");
            scanf("%d", &guess);
            count ++;
        }
        else if(guess > num)
        {
            printf("Too high! Your guess?\n");
            scanf("%d", &guess);
            count ++;
        }
        else if(guess < num)
        {
            printf("Too low! Your guess?\n");
            scanf("%d", &guess);
            count ++;
        }
    }
    if (guess == num)
    {
        printf("***CORRECT*****\n");
    }
    else 
        printf("Too many guesses\n");
    
    printf("The number is %d\n\n", num);
    }
    

    非常感谢。 :)

2 个答案:

答案 0 :(得分:1)

在您的功能中,您将num初始化为 -

int num = 23;

然后你让它存储任何随机生成的数字 -

srand((unsigned int)time(NULL));
num = rand() % 100 +1;

可能不是23,它可以是1 to 100之间的任何内容。因此,它显示了不期望的输出。

如果您希望num23,请使用rand()删除then语句。

答案 1 :(得分:0)

试试这个

#include <stdlib.h>
srand(time(NULL));
rand();
int random_number = rand() % 100 + 1;