【发布时间】:2014-10-28 13:53:01
【问题描述】:
这是我当前的代码。我正在尝试创建一个游戏,让计算机生成一个随机数,用户必须猜测它是高于还是低于显示的数字。但是我无法让随机数更改它始终保持不变。
那么我怎样才能改变随机数,以便用户可以继续猜测而不是陷入以下循环: 高于还是低于 6? 0 高于还是低于 6? 0
#include <stdio.h>
int main ()
{
int rdmnum;
int rdm2;
int guess;
int x = 1;
srand (time(NULL));
rdmnum = rand () % 9;
printf("To guess higher enter 1, to guess lower enter 0.\n");
printf("Higher or lower than %d?\n", rdmnum);
scanf("%d", &guess);
do {
if (guess == 1 && guess >= rdmnum){
printf("Higher or lower than %d?\n", rdmnum);
scanf("%d", &guess);
x = 1;
}
else {
x = 0;
}
if (guess == 0 && guess <= rdmnum){
printf("Higher or lower than %d?\n", rdmnum);
scanf("%d", &guess);
x = 1;
}
else {
x = 0;
}
} while (x ==1);
if (x ==0) {
printf("Incorrect the number was %d, game over!\n", rdmnum);
return 0;
}
}
【问题讨论】:
-
您是否期望
rdmnum在循环中神奇地获得随机数?你在循环之前只调用了一次rand。 -
我是否正确理解 0 总是意味着猜测“较低”?因为您似乎将猜测(1 或 0)与此随机数进行比较
-
是的,这是正确的。 1 表示较高,0 表示较低。