用 C 语言编程,我正在尝试运行一个游戏,其中计算机生成一个介于 1 和 100 之间的数字。但是,我不断得到 42 作为生成的数字......我的“rand()”有什么问题
#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int guess, tries = 6;
int number = 1+(rand()%100);
printf("Pick a number between 1 and 100:");
scanf_s("%d", &guess);
while(tries > 0 && guess != number)
{
if(guess > number)
printf("Too high");
else
printf("Too low");
puts(". Guess again:");
scanf_s("%d",&guess);
tries--;
}
if(guess == number)
puts("You win!");
else
puts("You lose");
}
经过下面的大量讨论后,我在下面的代码行中添加了
#include <time.h>
和
srand ((unsigned int)time(NULL));
但是代码无法在 MS Visual Studio 中运行,直到我用谷歌搜索错误,结果证明 MSVS 需要在每个函数/块的顶部声明变量。这样做后,代码工作正常。谢谢大家,对多次编辑感到抱歉。更正的代码:
#include <time.h>
int main (void)
{
int guess, tries = 6, number;
srand ((unsigned int)time(NULL));
number = 1+(rand()%100);
其余的都是一样的。谢谢你们。