1.1 引例
输入三角形的三边,判断是否构成三角形,若能则计算并输出三角形的体积,否则各处出错提示。
程序运行时首先输入三角形的三条边,分别保存在三个证型变量a,b,c中,然后根据三角形的构成条件,判断任意两边值和是否大于第三边。若不满足此条件,则这三便不能构成三角形,若满足此条件则构成三角形,则根据相应公式计算出三角形的面积。
编写程序,首先输入x的值,按以下分段函数计算并输出y的值。
4.2 关系运算符、逻辑运算符、条件运算符
4.2.1 关系运算符和关系表达式
1. 关系运算符
关系运算符用于判断两个操作数的大小关系。在C语言中有6个关系运算符,如表4.1所示。
运算符 | 含义 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
注意:
(1)关系运算符都是双目运算符,其结合方向是左结合。
(2)关系运算符的优先级低于算术运算符,但高于赋值运算符。
(3)关系运算符中,>、<、>=、<=的优先级相同,==、!=的优先级相同,前者的优先级高于后者,即“>=”的优先级高于“==”。
2.关系表达式
用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式的一般形式为:
表达式1 关系运算符 表达式2
功能:比较两个表达式的大小,返回一个逻辑值。
关系表达式中允许出现嵌套的情况。
注意:
(1)注意区分运算符“=”和“==”。“=”是赋值运算符,“==”是关系运算符。
(2)对实数进行判断可能得不到正确的结果,例如“1.0/3.0==1.0”的结果为0。
(3)关系表达式中可以出现赋值运算符,如“a>(b=0)”,但不能个写成“a>b=0”的形式。应为关系运算符的优先级高于算术运算符,表达式“a>b=0”相当于“(a>b)=0”,赋值运算符左边不是变量,会出现编译错误。
关系表达式主要用于分支结构中的条件判断。关系表达式的结果是一个逻辑值“真”或“假”,由于C语言中逻辑类型的数据,应此用“1”表示真,“0”表示假。
关系运算示例
4.2.2逻辑运算符与逻辑表达式
1.逻辑运算符
关系表达式只能表示单一的条件。对于较复杂的符合条件,例如“x小于10且x大于4”,如果用关系表达式“4<x<10”来描述,则当x=2时,由于关系运算符是左结合的,应此先计算“4<x”其值为0;然后再计算“0<10”,其值为1;即说明当x=2时满足关系“4<x<10”,很显然是错误的。应此需要逻辑运算符将若干个关系表达式连接起来才能正确描述上述关系。逻辑运算符如表4.2所示:
运算符 | ! | && | || |
名称 | 逻辑非 | 逻辑与 | 逻辑或 |
结合性 | 右结合 | 左结合 | 左结合 |
优先级 | 高→低 |
注意:与运算符&&和运算符||都是双目运算符,非运算符!为单目运算符。
2.逻辑表达式
用逻辑运算符将两个表达式连接起来的式子称为逻辑表达式。逻辑表达式的一般形式为:
表达式1 逻辑运算符 表达式2
或
逻辑运算符 表达式1