用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");
}
Run Code Online (Sandbox Code Playgroud)
经过下面的大量讨论后,我在代码中添加了一些内容
#include <time.h>
Run Code Online (Sandbox Code Playgroud)
和
srand ((unsigned int)time(NULL));
Run Code Online (Sandbox Code Playgroud)
但是代码无法在MS visual studio中运行,直到我用Google搜索错误,结果发现MSVS需要在每个函数/块的顶部声明变量.执行此操作后,代码工作正常.谢谢大家,对不起多次编辑感到抱歉.更正的代码:
#include <time.h>
int main (void)
{
int guess, tries = 6, number;
srand ((unsigned int)time(NULL));
number = 1+(rand()%100);
Run Code Online (Sandbox Code Playgroud)
其余的都是一样的.谢谢你们.