C 中的随机数生成器不接受再次播放的输入?
Random number generator in C not accepting input for play again?
它一直有效,直到它要求用户再次播放。它会提示用户,但会自动退出并返回到命令行。有人可以告诉我发生了什么事吗?它没有给我任何警告,我也想不出为什么,我已经尝试了一些东西。我是 C 的新手。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char goAgain='y';
int theNum=0;
int guess=0;
int max=0;
do{
do{
printf("Enter a number over 99: ");
scanf("%d", &max);
if(max <= 99) {
printf("Please enter a number over 99");
}
}while(max <= 99);
srand(time(NULL));
theNum = (rand() % max) + 1;
do{
printf("Please enter a guess:\n ");
scanf("%d", &guess);
if(guess > theNum) {
printf("Too high\n");
}
else if(guess < theNum) {
printf("Too high\n");
}
else {
printf("That's correct!\n");
}
}while(theNum != guess);
printf("Would you like to play again? (y/n): ");
scanf("%c", &goAgain);
}while(goAgain == 'y');
return(0);
}
scanf("%c", &goAgain);
应该是
scanf(" %c", &goAgain);
注意 %c
之前的 space 忽略换行符(以及任何其他白色 space)。
扫描整数时有一个换行符,您的 scanf("%c",&goAgain);
正在使用该换行符,因此请确保通过在格式说明符 %c
前放置 space 来忽略它.
它一直有效,直到它要求用户再次播放。它会提示用户,但会自动退出并返回到命令行。有人可以告诉我发生了什么事吗?它没有给我任何警告,我也想不出为什么,我已经尝试了一些东西。我是 C 的新手。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char goAgain='y';
int theNum=0;
int guess=0;
int max=0;
do{
do{
printf("Enter a number over 99: ");
scanf("%d", &max);
if(max <= 99) {
printf("Please enter a number over 99");
}
}while(max <= 99);
srand(time(NULL));
theNum = (rand() % max) + 1;
do{
printf("Please enter a guess:\n ");
scanf("%d", &guess);
if(guess > theNum) {
printf("Too high\n");
}
else if(guess < theNum) {
printf("Too high\n");
}
else {
printf("That's correct!\n");
}
}while(theNum != guess);
printf("Would you like to play again? (y/n): ");
scanf("%c", &goAgain);
}while(goAgain == 'y');
return(0);
}
scanf("%c", &goAgain);
应该是
scanf(" %c", &goAgain);
注意 %c
之前的 space 忽略换行符(以及任何其他白色 space)。
扫描整数时有一个换行符,您的 scanf("%c",&goAgain);
正在使用该换行符,因此请确保通过在格式说明符 %c
前放置 space 来忽略它.