C语言中int的取值范围为:-2147483648 ~ 2147483647。超过了这个范围进行赋值,C源代码是无法通过编译的。
下面给出简单的测试代码:
# include
int main(void)
{
int i = 100000000000000000000000000000000000000000000;
printf("%d\n", i);
return 0;
}
可以看到编译器提示这个定义类型的赋值太大了,导致无法编译成功。
int main() {
int max = 1000;
int input = 0;
do{
printf("请输入一个小于 %d 的数:", max);
scanf("%d", &input);
} while ( input > max );
return 0;
}
int本身超出范围,如果用%d来输入,是没办法判断是否超过范围的
所以最简单的方法,就是以64位整型输入
然后判断值是否在int范围
如果超过int,则提示并循环输入,直到符合int范围为止