【发布时间】:2014-02-07 16:03:48
【问题描述】:
我想知道为什么无论我输入一个数字、一个字母或一个字符,它都会继续打印最后一行,为什么是“这是一个整数行永远不起作用?我该如何获取用户只输入一个正数?
#include <stdio.h>
#include <limits.h>
main(){
unsigned int num;
printf("Please input a positive number: ");
scanf("%d",&num);
if ((num >= 'a' && num <= 'z') || (num >='A' && num <= 'Z')){
printf("not an interger(alpha)");
}
else if ( num >= '0' && num <= '9'){
printf("yes this is an integer");
}
else{
printf("not an integer");
}
}
【问题讨论】:
-
顺便说一下,main() 应该有一个 int 返回类型。
-
@jfly - 它是 C - 无效是可能的
-
@EdHeal 对于 C99,不能省略 int 返回类型。您可以省略 main 中的 return 语句。如果你这样做了,并且 main 完成了,就会有一个隐式返回 0。我认为应该避免它。