1个回答
展开全部
不好意思,为了抢先回答,所以刚才没有具体分析啊,下面是分析,有问题可以问我
首先我们分析一下while(a)的条件a,当a为假时循环退出,当a为真时循环继续执行;
条件a什么时候为为真能,a不为0时为真,a为0时为假
n>m>b虽然不是C语言中正确的语法,但有时候是允许的,
例如:if(90<num<100) 这样的代码有语义错,而不是语法错误,由于运算符<>==等逻辑运算符的求值顺序是从左往右,所以编译器把表达式解释为:
(90<num)<100, 子表达式 (90<num)的值要么为1,要么为0。然而1小于100,也0小于100,所以不管num为什么值,整个表达式都为真。
现在我们可以分析a<b<c, --> (a<b)<c,
其中a<b 的值要么为1(真),要么为0(假),所以
a<b<c 有两种情况 ,1<c,或者0<c;
在第一次循环当中 a=1,b=2,c=2; a<b 为真 ,其值为1,而1<c为真,所以a<b<c为真
在第二次循环当中 a=2,b=1,c=1; a<b 为假 ,其值为0,而0<c为真,所以a<b<c为真
在开始第三次循环中a=1,b=2,c=0;a<b 为真,其值为1,而1<c为假,所以a<b<c为假
首先我们分析一下while(a)的条件a,当a为假时循环退出,当a为真时循环继续执行;
条件a什么时候为为真能,a不为0时为真,a为0时为假
n>m>b虽然不是C语言中正确的语法,但有时候是允许的,
例如:if(90<num<100) 这样的代码有语义错,而不是语法错误,由于运算符<>==等逻辑运算符的求值顺序是从左往右,所以编译器把表达式解释为:
(90<num)<100, 子表达式 (90<num)的值要么为1,要么为0。然而1小于100,也0小于100,所以不管num为什么值,整个表达式都为真。
现在我们可以分析a<b<c, --> (a<b)<c,
其中a<b 的值要么为1(真),要么为0(假),所以
a<b<c 有两种情况 ,1<c,或者0<c;
在第一次循环当中 a=1,b=2,c=2; a<b 为真 ,其值为1,而1<c为真,所以a<b<c为真
在第二次循环当中 a=2,b=1,c=1; a<b 为假 ,其值为0,而0<c为真,所以a<b<c为真
在开始第三次循环中a=1,b=2,c=0;a<b 为真,其值为1,而1<c为假,所以a<b<c为假
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询