有人可以帮我在这里找到我的代码中的错误吗?我对编程完全陌生,我正在尝试制作一个简单的猜谜游戏,它也使用isdigit()
.
#include <stdio.h>
#include <ctype.h>
main()
{
int iRandom = 0;
int iGuess = 0;
srand(time(NULL));
iRandom = rand()%10 + 1;
printf("\nPlease guess a number between 1 and 10: ");
scanf("%d", &iGuess);
if (isdigit(iGuess)){
if(iGuess == iRandom){
printf("\nYou guessed the correct number!\n");
}
else{
printf("\nThat wasn't the correct number!\n");
printf("\nThe correct number was %d\n", iRandom);
}
}
else{
printf("\nYou did not guess a number.\n");
}
}
问题是,无论我是否输入数字,程序都会返回“您没有猜到数字”。运行 gcc 编译器也不会产生任何我能看到的明显错误。如果我的嵌套if
语句搞砸了,有人可以解释为什么,如果isdigit(iGuess)
被评估为真,它仍然会运行该else
部分吗?