C: 猜数字游戏

C: Number Guessing Game

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

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

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

    ***正确*****

  2. 想再玩一次? y

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

    ***正确*****

当 I/the 用户在第一个 运行 中输入数字 23 时,我无法让我的脚本输出 ***CORRECT*****。当我输入 50、12、112 和 -20 时,我得到了正确的响应,但输入 23 时却没有。输入 23 后,我得到 "Too low! Your guess?" (我没有试过第二个 运行 因为我需要确保我能得到第一个 运行 按照示例。)

这是我所拥有的片段:

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

非常感谢您的帮助。 :)

在您的函数中,您将 num 初始化为 -

int num = 23;

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

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

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

如果您希望 num 成为 23 则删除带有 rand() 的 then 语句。

试试这个

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