【发布时间】:2023-03-13 15:22:01
【问题描述】:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void){
int corX = 0;
do{
printf("Please enter number X:\n");
scanf("%d",&corX);
} while(!(isdigit(corX) && corX>1 && corX<80));
printf("You entered X as: %d\n",corX);
return 0;
}
嗨!上面的代码应该检查输入的值是否为整数并适合范围。如果没有,程序应该再次询问。不幸的是,它不能以这种方式工作。无论我写什么,循环总是通过,结果我收到输入的数字数字和其他符号的 0。有人可以解释一下,我做错了什么吗?
【问题讨论】:
-
你认为
isdigit会做什么? -
也许你应该尝试输入 48 ?
-
我以为 isdigit 检查输入的符号是否为数字。
-
让我们重新表述一下 Kerrek 的问题:What do you imagine
isdigit()does?
标签: c loops while-loop