三目运算符
- 基本语法
- 运算符优先级
- 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;
}
