专栏文章
题解:B4418 [语言月赛 202510] 选择题
B4418题解参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @minjklww
- 此快照首次捕获于
- 2025/12/02 03:28 3 个月前
- 此快照最后确认于
- 2025/12/02 03:28 3 个月前
本题考查分支结构的几个常见应用,代码比较综合。
首先要判断 A,B,C 中有无重复选项,换言之,只要 或者 或者 ,那么小 K 都要举手示意。我们通常使用
|| 来表示“或者”。然后依次判断:
- 如果 ,那么输出 A。
- 否则如果 ,那么输出 B。
- 否则如果 ,那么输出 C。
如果上述三种情况都不符合要求,那么接着看“中庸之道”。
要判断第二大的数字是谁,有比较多的思路:
方法一:
如果 是第二大的数,那么 “”和“”恰好满足一个。
在 C++ 中,可以使用
^ 来表示“两者恰好满足其一”,例如 (a<b) ^ (a<c)。但是读者需要注意,^ 的本意是按位异或而非逻辑异或,所以只有 ^ 两侧都是 bool 类型的值时才会符合预期。当然,可以利用
bool 转化成 int 的方法,使用 (a<b) + (a<c) == 1 来表示。方法二:
先计算出第二大的数,然后依次判断 是否是这个数。
具体地,第二大的数等于三个数字的和,减去最大数再减去最小数。三个数的最大数可以通过
max(a,max(b,c)) 来得到,当然,在更新的(C++ 11 及以上)语言版本中,可以直接写 max({a,b,c})。把这个数记为 ,然后分别判断 是否等于 即可。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...