三目运算符
- 基本语法
- 运算符优先级
- T173076
- 输出绝对值
- 使用3目运算符
- 使用abs函数
基本语法
- C++中的三目运算符是一种条件运算符,其语法格式如下:
条件表达式 ? 表达式1 : 表达式2
这里的“条件表达式”是一个返回布尔值(true 或 false)的表达式。如果条件表达式的结果为 true,则整个三目运算符的结果为“表达式1”的结果;如果条件表达式的结果为 false,则结果为“表达式2”的结果。
下面是一个简单的示例:
#include <iostream>int main() {int a = 10, b = 20;int max = (a > b) ? a : b;std::cout << "较大的数是: " << max << std::endl;return 0;
}
在这个例子中,(a > b) 是条件表达式,它检查 a 是否大于 b。因为 a 不大于 b,所以条件表达式的结果为 false,因此 max 的值被设置为 b 的值。
三目运算符也可以嵌套使用,如下所示:
int x = 10, y = 20, z = 30;
int m = (x > y) ? x : (y > z) ? y : z;
在这个例子中,首先比较 x 和 y,因为 x 不大于 y,所以比较 y 和 z,最后 m 被赋值为 z 的值。
需要注意的是,三目运算符的优先级低于逻辑运算符(&& 和 ||),所以在包含这些运算符的复杂表达式中使用三目运算符时,需要使用括号来明确运算顺序。
运算符优先级
在C++中,运算符的优先级决定了表达式中各个部分的计算顺序。以下是C++中运算符的优先级列表,从最高到最低:
-
后置运算符:
- 成员访问(
.和->) - 后置递增(
++) - 后置递减(
--) - 函数调用(
()) - 数组访问(
[])
- 成员访问(
-
一元运算符:
- 逻辑非(
!) - 按位取反(
~) - 负号(
-) - 正号(
+) - 前置递增(
++) - 前置递减(
--) - 类型转换(
(type)) *(解引用指针)&(取地址)sizeof
- 逻辑非(
-
乘除和取模:
- 乘法(
*) - 除法(
/) - 取模(
%)
- 乘法(
-
加减运算符:
- 加法(
+) - 减法(
-)
- 加法(
-
位移运算符:
- 左移(
<<) - 右移(
>>)
- 左移(
-
关系运算符:
- 小于(
<) - 大于(
>) - 小于等于(
<=) - 大于等于(
>=)
- 小于(
-
相等运算符:
- 等于(
==) - 不等于(
!=)
- 等于(
-
位运算符:
- 按位与(
&) - 按位异或(
^) - 按位或(
|)
- 按位与(
-
逻辑运算符:
- 逻辑与(
&&) - 逻辑或(
||)
- 逻辑与(
-
条件运算符(三目运算符):
- 条件运算符(
? :)
- 条件运算符(
-
赋值运算符:
- 赋值(
=) - 复合赋值运算符(
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=)
- 赋值(
-
逗号运算符:
- 逗号(
,)
- 逗号(
- 请注意,赋值运算符的优先级低于所有其他运算符,这意味着在表达式中,赋值运算符总是在其他运算符之后执行。此外,逗号运算符的优先级最低,它用于分隔表达式列表,例如在函数调用中。
- 当表达式中包含多个具有相同优先级的运算符时,它们将从左到右进行计算。为了确保表达式按照预期执行,可以使用括号来改变运算顺序。
T173076
输出绝对值
- 题目描述
输入一个浮点数,输出这个浮点数的绝对值,保留到小数点后两位。
- 输入格式
输入一个浮点数,其绝对值不超过 10000 10000 10000 。
- 输出格式
输出这个浮点数的绝对值,保留到小数点后两位。
- 样例输入
-23.333
- 样例输出
23.33
使用3目运算符
#include <iostream>
#include<cstdio>
using namespace std;
int main() {double a;cin>>a;a= a<0?-a:a;printf("%.2lf\n",a);return 0;
}
使用abs函数
#include <iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main() {double a;cin>>a;printf("%.2lf\n",abs(a));return 0;
}
