C语言中 while(scanf("%d%d",&m,&n)!=EOF&&m<=0||n<=0);是什么意思?
3个回答
展开全部
这个while循环是为了保证从键盘读数的时候只要读入成功,那么m或者n肯定是都大于0的,否则一直从键盘读数,直到两个都大于0或者读入不成功为止。
追问
按照他们三个优先级来看。我把他理解为当输入m n 不等于无效输入并且m<=0,或者n<=0,那么继续输入。但是这样好像又不符合题目的要求
追答
我觉得符合要求啊,如果输入成功,那么scanf返回真,检测m的值,如果m满足小于等于0,直接表达式返回真,如果m不满足,检测n,如果n满足小于等于0,表达式返回真,否则返回假。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当你输入的不为Ctrl+Z,并且m或n的值小于等于0时你可以继续输入m和n的值。可以保证你输入的m和n都是大于0,才继续下一步。
在控制台要输入eof的话 按ALT+65535也可以了
在控制台要输入eof的话 按ALT+65535也可以了
追问
运算顺序是这样的吗?
while( (scanf("%d%d",&m,&n)!=EOF&&m<=0) ||n<=0);
追答
应该这么写
while( scanf("%d%d",&m,&n)!=EOF && (m<=0 || n<=0));
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询