#include <stdio.h>
#include<stdlib.h>
int main (){
int guess, maxGuess = 10;
int goal = rand()%50+1;
for (int i = 0 ; i<maxGuess;i++){
printf("Enter a guess between 1-50:\n");
scanf("%d",&guess);
if (guess<goal){
printf("Too low\n");
}
else if(guess>goal){
printf("Too high\n");
}
else if (guess == goal){
printf("Correct! the number was %d\n",goal);
}
}
//printf("Too many guesses, the number was %d\n",goal);
return 0;
}
这是我的一款猜谜游戏代码,当它运行通过它时,我会得到相同的数字,例如,编译时它始终为我提供34,而随机数始终生成34。我似乎找不到我做错了什么,也许我在错误的地方放了东西,我不确定我是否注释掉了最后一行以查看它是否有帮助,但没有帮助,但是我已经看过了,但没有发现与我的问题非常相似的东西,因此有什么帮助感谢!
TIA
答案 0 :(得分:2)
您永远不会为随机数生成器提供种子。
如果在调用rand
之前调用了srand
,则随机数生成器将以1作为种子。因此,您每次都会获得相同的数字。
在程序开始时调用一次srand
,以植入随机数生成器。
srand(time(NULL));
int goal = rand()%50+1;