对于c中的猜谜游戏,无法获得除“太高”以外的结果

我已经完成了一个程序的代码,该程序允许用户输入一系列值来猜测,然后随机生成数字,然后允许用户猜测并报告太低,太高或正确。 当我测试程序运行时,我只得到“太高”的输出。 我已经尝试调试并查看我的代码,但我无法看到它出错的地方。 任何帮助深表感谢!

#include  #include  int main() { int min, max, number, guess, count = 0; printf("Please enter two integers for the range:\n"); scanf("%d %d", &min, &max); number = (min + rand()%(max - min + 1)); printf("I'm thinking of a number between %d and %d.\n", min, max); printf("Enter your guess:\n"); scanf("%d", &guess); while(guess != number) { if(guess < number) { count++; printf("Too low.\n"); printf("Enter your guess:\n"); scanf("%d", &guess); } else { count++; printf("Too high.\n"); printf("Enter your guess:\n"); scanf("%d", &guess); } } count++; printf("Correct, it took you %d tries to guess my number. ", count); return 0; } 

哦,你没有初始化你的随机数生成器!

在程序开头添加srand(time(NULL)) ,或者随机数始终相同(并且可能为零)。

您的number表达式可以生成超出范围的值。 它应该是:

 number = min + rand() % (max - min + 1); 

您还需要采取措施初始化随机数生成器。