关于C语言中a<b<c这个表达式

为什么当a=1,b=2,c=2以及a=2,b=1,c=1时,这个表达式都为真?

C语言中0为假,非0为真,当真假需参与运算时,1对应真,0对应假。
你这里从左到右依次执行,当a=1,b=2,c=2时,首先a<b是真的,所以式子变为1<c,这个也是真的,所以整个式子是真的。同理,a=2,b=1,c=1时,a<b是假的,所以变为0<c,c的值是1,比0大,所以是真的,所以整个式子还是真的
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-22
从左到右算一下就知道了,步骤如下:
a<b<c
可以看作
(a<b)<c
因为a=1,b=2
所以a<b为真,即结果为1
然后再比较1<c
因为c=2
所以1<2为真
第2个回答  2015-08-22
a<b<c相当于
int r;
r=(a<b);
r<c;
所以,当a=1,b=2,c=2时,
r=(a<b)=1
r=1<c为真.
a<b<c的最终结果为真.

当a=2,b=1,c=1时,
r=(a<b)=0
r=0<c为真
a<b<c为真
第3个回答  2015-08-22
由运算符结合性可知,表达式
a<b<c
等效于
(a<b)<c
显然的此处输出的是子表达式a<b的值和c进行逻辑比较后的值

关于C语言中a<b<c这个表达式
C语言中0为假,非0为真,当真假需参与运算时,1对应真,0对应假。你这里从左到右依次执行,当a=1,b=2,c=2时,首先a<b是真的,所以式子变为1<c,这个也是真的,所以整个式子是真的。同理,a=2,b=1,c=1时,a<b是假的,所以变为0<c,c的值是1,比0大,所以是真的,所以整个...

c语言中a<b<c这个句子怎样解析,如a=1,b=3,c=2结果是不是为1
a<b<c是个关系表达式,从左往右计算,a<b即1<3是假,返回0,0<2也是假,所以返回为0

C语言中的a<b<c何解???
是a<b的结果与c进行比较 而a<b的结果只能是0或者1,用0或者1和c进行比较 比如a是2,b是1,c是1 那么a<b<c的过程如下 a<b=>2<1=>0 0<c=>0<1=>1 a<b<c的结果就是1 onyourmark111不懂别装懂 误人子弟就是你这样的

c语言中这个a<b<c什么意思
a = b = c 意思是将 c 的值赋给 b,再赋给 a,a,b,c 都等于3。a = b == c, = 的优先级低于 ==,会先判断 b == c 结果为假,就是0值,然后将0值赋给 a,也就是执行后,a = 0, b = 2, c = 3。a == (b=c),会先讲 c 值赋给 b, 然后判断 a 是否等于 b,...

a<b<c在c语言中看的顺序是右到左还是左到右
没关,标准C中规定的<的结合性是左结合 也就是从左向右算 这样来看 a<b是假,值为0,然后 0<c 值为真,所以表达式的值为真

为什么a<b<c对应的C语言表达式是a<b&&b<c?
因为以C语言标准规定的表达式逻辑,a<b<c等效于(a<b)<c 队医子表达式a<b的结果必然是真(1)或假(0),所以其实就是1<c或0<c 显然和想要表达的b∈(a,c)不同,a<b&&b<c才是合逻辑的表达

C语言中a<b<c
scanf("%d &d &d",&a,&b,&c);好像应该是 scanf("%d %d %d",&a,&b,&c);不然 b , c都应该没有值,而默认的整形初始值C中是0,所以,第一个结果为 1< 0< 0 得到结果为 假 而第二个结果 2 < 0 < 5 得到结果为 真 ...

c语言中a<b?b:c<d?d:e什么意思?
这个是复合的三目运算 例如x=a<b?c:d的意思就是如果a小于b,x就等于c,否则x=d a<b?b:(c<d?d:e)这样就明白了 如果a<b,那么表达式的值就是b,如果a不小于b,那么表达式的值就是(c<d?d:e)的值 c<d?d:e这个表达式中如果c<d那么表达式值就是d,否则就是e,...

C语言c<a<b的表达合法吗?怎么求?
是合法的表达式。只是c<a<b表达式的含义不是数学上讲的a>c且a<b就满足条件,这表示的恰好与数学的相反,a<c且a>b就为真,a>c且a<b就为假。

C语言中 a<b?c:++c>d?b:d怎么理解?若声明int a=15,b=20,c=25,d=30...
C语言中的?:是3目运算符,例如 x = a<b ? a : b 意思是:if(a<b)x=a;else x=b;一步一步把下面的这个式子拆开吧 x = a<b?c:++c>d?b:d if(a<b)x = c;else x = ++c>d?b:d 把else部分也拆开:if(a<b)x = c;else{ if(++c>d)x=b;else x=d;} 写到这你该...

相似回答