如题所述
意思是输入m n的值,若是m <=0 或者n <0 且输入值不是结束字符或者输入没有错误时,会继续要求输入
实际的意思是输入m n的值,且 m 和n的值要大于0,否则重新输入追问
实际的意思是输入m n的值,且 m 和n的值要大于0,否则重新输入追问
按照他们三个优先级来看。我把他理解为当输入m n 不等于无效输入并且m<=0,或者n<=0,那么继续输入。但是这样好像又不符合题目的要求。觉得矛盾了
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-03-20
这个while循环是为了保证从键盘读数的时候只要读入成功,那么m或者n肯定是都大于0的,否则一直从键盘读数,直到两个都大于0或者读入不成功为止。追问
按照他们三个优先级来看。我把他理解为当输入m n 不等于无效输入并且m<=0,或者n<=0,那么继续输入。但是这样好像又不符合题目的要求
追答我觉得符合要求啊,如果输入成功,那么scanf返回真,检测m的值,如果m满足小于等于0,直接表达式返回真,如果m不满足,检测n,如果n满足小于等于0,表达式返回真,否则返回假。
第2个回答 2015-03-20
当你输入的不为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));