c语言中if(a>b>c)和if(a>b&&b>c)有什么区别

如题所述

C语言中没有连续不等式的写法。if(a>b>c) 这种写法程序不能正确执行。

if(a>b&&b>c) 是正确写法。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-22
若a=1并且b=2(执行该步操作后,b的值加1为3)。
逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
符号
功能
&&
逻辑与
||
逻辑或
!
逻辑非
当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:
a=2,b=1;
a||b-1;
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。例如:
--Couter;
Couter--;
++Amount;
Amount++;
看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者减1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;
a
=++num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先自增加1变为5,然后赋值给a,最终a也为5。b=num2++;这是把num2++的值赋给b,因为自增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为
9。
那么如果出现这样的情况我们怎么处理呢?
c=num1+++num2;
到底是c=(num1++)+num2;还是c=num1+(++num2);这要根据编译器来决定,不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。
第2个回答  2018-04-05
a>b>c即(a>b)>c,子表达式a>b的结果只可能是1(真)或假(0),即必然是1>c或0>c种的一种本回答被提问者采纳

c语言中if(a>b>c)和if(a>b&&b>c)有什么区别
C语言中没有连续不等式的写法。if(a>b>c) 这种写法程序不能正确执行。if(a>b&&b>c) 是正确写法。

C语言里关系运算符a>b>c和a.b && b>c是一个意思吗
a>b>c 先a和b比较 如果a>b 它返回的是0或者1 然后 0或者1 在于c比较

...if(a==1&&b==0&&c==0) {} 和 if(a>b&&a>c) {} 相比
你首先要弄明白在C语言中,==和>都是如何运算的,计算机自身并不会判断大小,而是根据两个数相减的正负来判断大小的,例如,a>b,在处理器内部是要判断a-b的正负的,如果是正,则a>b成立,同理,a==1,就是判断a-1是不是等于0,所以==的运算速度要略快一些 ...

c语言逻辑运算 if(a>b>c)错误
if (a > b > c)确实是错误的,原因在于:表达式a > b > c会依次从左到右进行计算,即相当于(a > b) > c 先计算 a > b,如果成立,会返回1, 否则会返回0; 之后再比较1 > c或者 0 > c这样就导致和你想要的结果不同 例如: a=4,b=3,c=2 则a > b返回1, 1 > c返回0,a...

C语言中if(a>b>c)是什么意思???
C语言中if(a>b>c)表示if((a>b)>c) 先求出a>b的结果,然后这个结果再和c比较,由于a>b的结果不是0就是1,最终就是0或者1与c比较。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要...

C语言if条件语句中如何表达 a>b>c
用逻辑运算符与if(a>b&&b>c)

if(a> b> c)是什么意思啊
在C语言中,if(a > b > c)是一个复合表达式,它表示如果a大于b,并且a大于b的结果大于c,则表达式的结果为真。否则,表达式的结果为假。换句话说,if(a > b > c)等价于if((a > b) > c)。以下是一个示例代码,演示了如何使用if(a > b > c)表达式:运行结果:♡♡ 有...

C语言编程,if(a>b>c)可以这么写吗?我们老师好像有说不能连着的_百度知...
说这样的写法是错误的,是因为不能表达数学中的a>b>c的效果。但是这样的写法是符合C语言的语法的。它的作用是先判断a>b的结果,如果成立,那么a>b为1, 否则为0.然后再用这个结果,0或者1去和c判断。所以这个题目是没错的,可以得出结果。先判断a>b 为真,结果为1 再判断1>c c为3,结果为...

C语言中的if(a>b>c)是什么意思?
先计算 a>b 它的值是1 ,然后 1>c 它的值是0 c用0代表假用非0代表真

C语言 新手求救: if();和if()有什么区别
if()不加“;”,下面的第一句为如果if(条件为真),则执行下面的第一句(没有花括号),如果if()后面加“;”,则if()条件语句成立的话,执行的是空语句。1.不加“;”if(contidions)statements; \/\/执行此语句 2.加“;”if(conditions);相当于 if(conditions)空语句; \/\/什么都不干...

相似回答