C语言的,这个程序当中为啥会有两个scanf函数语句,这两个scanf函数语句有啥区别?
2个回答
展开全部
第一个是在do~while中保证输入的数是大于0的或是等于-1的,否则一直循环要求输入正确的数。第二个在while循环中,只要输入的数不是-1就一直循环要求输入。从输入数据的本质讲这两个scanf没有什么区别,都是输入一个整数,只是对输入数据的范围要求不一,写两个是便于代码对输入数据范围的处理。
更多追问追答
追问
如果说输入24、18的话,那由第一个赋值语句可知,max=24,x也等于24,执行while语句当中的if语句可知为假(因为x、max都为24),所以max输出24,而输入18的话,由第一个赋值语句可知max、x都为18,while语句的if语句依然不会执行,则输出max=18,我这是那出问题了吗?
输出的应该是24啊
展开全部
第一个循环是找到第一个正数,赋值为max
然第二个循环遍历所有数
其实代码是有问题的,按照题目要求,输入-1代表结束
这个代码如果输入全是负数,那么需要两个-1才能结束程序
其实保留第二个循环,删掉第一个,并把max初始化为-1,这样更好一些
然第二个循环遍历所有数
其实代码是有问题的,按照题目要求,输入-1代表结束
这个代码如果输入全是负数,那么需要两个-1才能结束程序
其实保留第二个循环,删掉第一个,并把max初始化为-1,这样更好一些
追问
代码没有问题吧,题干上说的是输入正整数
追答
如果限定输入必然有正整数,那么第一个循环的退出条件-1就是多余的,因为-1是最后一个,在之前必然有正数导致第一个循环退出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询