作业帮 > 综合 > 作业

C语言中,max=(a>((b>c)?b:c)?a:(b>c:b:c));

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 22:49:28
C语言中,max=(a>((b>c)?b:c)?a:(b>c:b:c));
? : 是 C 语言里唯一的三目运算符,作用是先判断 ? 前面的表达式是否为真,如为真,则表达式的值为 ? 和 : 之间的值,否则为 : 之后的值.
先看第一个, (b>c)?b:c 先判断 b 是否大于c,如果是,值为 b,否则为 c,可以理解为求 b 和 c 的最大值.
然后再看 (a>((b>c)?b:c) ? a : (b>c:b:c)) ,有了前面的基础,可以看出中文问号 ? 前面的是判断 a 是否大于 b、c 中较大的那一个,如果 a 比 b、c 都大,那么表达式的值就是 a,如果 a 比 b 小或者比 c 小,那么表达式的值就是 : 后面的部分,仔细一看还是 b 和 c 中的较大者.
整理一下思路,如果 a 比 b、c 都大,那么结果为 a,是 a、b、c 中的最大值;如果 a 比 b 或者 c 小,说明 a 不是三者中最大的,此时结果是 b、c 中较大的那一个,显然这才是 a、b、c 中的最大值.最后再把这个值赋给 max.
故这段话的意思是,求出 a、b、c 中最大的那个数,并把它赋给变量 max.