#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

最佳答案

您永远不会播下随机数生成器。

如果在调用rand之前先调用srand,则随机数生成器将以1作为种子。因此,每次都会获得相同的数字。

在程序开始时调用一次srand以播种随机数生成器。

srand(time(NULL));
int goal = rand()%50+1;

关于c - 随机函数卡在一个数字上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53111827/

10-12 16:13