C: 猜数字游戏
C: Number Guessing Game
如何定义我希望用户在猜数游戏中猜出的数字?
我需要遵循两个程序示例 运行,粗体字是用户的输入:
好的,我在想一个数字。试着猜一猜。
你猜? 50
太高了!
你的猜测? 12
太低!
你的猜测? 112
非法猜测。您的猜测必须在 1 到 100 之间。
再试一次。你的猜测? - 20
非法猜测。您的猜测必须在 1 到 100 之间。
再试一次。你的猜测? 23
***正确*****
想再玩一次? 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;
如何定义我希望用户在猜数游戏中猜出的数字?
我需要遵循两个程序示例 运行,粗体字是用户的输入:
好的,我在想一个数字。试着猜一猜。
你猜? 50
太高了!
你的猜测? 12
太低! 你的猜测? 112
非法猜测。您的猜测必须在 1 到 100 之间。
再试一次。你的猜测? - 20
非法猜测。您的猜测必须在 1 到 100 之间。
再试一次。你的猜测? 23***正确*****
想再玩一次? 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;