如何在数字猜谜游戏中定义我希望用户猜出的数字?
我需要遵循程序的两个示例运行,粗体是用户的输入:
好的,我在考虑一个数字。试着猜一下。
你猜?的 50
太高了!
你的猜测?的 12
太低!
你的猜测?的 112
非法猜测。你的猜测必须在1到100之间
再试一次。你的猜测? - 20
非法猜测。你的猜测必须在1到100之间
再试一次。你的猜测?的 23
*** ***** CORRECT
想再玩一次?的ý
好的,我在考虑一个数字。试着猜猜它。你的猜测? 85
*** ***** CORRECT
当我/用户在第一次运行中输入数字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);
}
非常感谢。 :)
答案 0 :(得分:1)
在您的功能中,您将num
初始化为 -
int num = 23;
然后你让它存储任何随机生成的数字 -
srand((unsigned int)time(NULL));
num = rand() % 100 +1;
可能不是23
,它可以是1 to 100
之间的任何内容。因此,它显示了不期望的输出。
如果您希望num
为23
,请使用rand()
删除then语句。
答案 1 :(得分:0)
试试这个
#include <stdlib.h>
srand(time(NULL));
rand();
int random_number = rand() % 100 + 1;