C语言中比较2个整数的较大者输入范围只能在100以内嘛?
2个回答
展开全部
如果没有任何特殊的条件或者是scanf函数的附加条件,输入范围可以是任何数,只要不超出变量类型能承载的数字范围是可以的。
这里再讲几个关于scanf函数的其它特殊条件(不想看就跳过):
当然如果scanf函数有附加条件,比如这样:
scanf("%4d", &a);
这表示只接收长度为4的整数,其余的均不接收。
那假如我输了一个长度为5的整数呢?程序会先从中读取一个长度为4的整数,另外1个长度就不要了。如果下面还有scanf函数,那下面这个scanf函数会直接读取超出范围的数。如果这个scanf也有限制条件,它也会按照限制的长度读取剩下的数,然后交给下一个scanf函数,直到读取完。如果在某一个scanf函数读取完后没有下一个scanf函数而且数又没读取完,那就会造成内存遗漏,这个数就会被抛弃在堆里,永远无法使用。为了防止这样的事情发生,C语言就发明了新的函数scanf_s,当超出了函数限定范围而又没读取完,这个数就会被删除,而不是丢在堆里。
更多追问追答
追问
我是照书上写的,但是只能在100以内可以,超过就显示那个最小的数,比如,100,101,然后回车max=100,我就懵了!我用的是VS2017。
追答
能否让我看下代码?没有代码我不知道是怎么一回事
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询