- 基础理解
- 提高三目运算符复杂度
- 难理解的三目运算符
表达式1?表达式2:表达式3;
- 三目运算符属于条件运算符,可与 if 判断函数类比。
- 其运算规则是:先计算表达式1中内容,如果表达式1中内容为真,则计算表达式2中内容并返回;若表达式1中内容为假,则计算表达式3中内容并返回。
- 最简单的三目运算符如:
#includeint main(){ int a,b,c; a=7; b=6; c=(a>b)?a:b; return 0; }
等价于 if 判断函数:
#includeint main(){ int a,b,c; a=7; b=6; if (a>b) c=a; else c=b; return 0; }
提高三目运算符复杂度
思考如何运用三目运算符返回三个输入中的最大值。
测试题目见:https://edu.csdn.net/skill/practice/c-1d3d9e97b98b4151b87c4433d987af83/327?typeId=18462&language=c
方案1
#includeint main() { int a, b, c, max; printf("请输入3个整数:"); scanf("%d,%d,%d", &a, &b, &c); max = a > b ? (a > c ? a : c) : (b > c ? b : c); printf("3个整数中的最大的是:%d", max); return 0; }
提取出关键判断语句:
max = a > b ? (a > c ? a : c) : (b > c ? b : c);
含义解释:
难理解的三目运算符
还是思考如何运用三目运算符返回三个输入中的最大值。
方案2
#includeint main() { int a, b, c, max; printf("请输入3个整数:"); scanf("%d,%d,%d", &a, &b, &c); max = (c > ((a > b) ? a : b)) ? c : ((a > b) ? a : b); printf("3个整数中的最大的是:%d", max); return 0; }
提取出关键判断语句:
max = (c > ((a > b) ? a : b)) ? c : ((a > b) ? a : b);
含义解释:



