B3887 [语言月赛 202311] 风球 题解

· · 题解

Source & Knowledge

2023 年 11 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察循环结构。

文字题解

本题要求读入 8 个气象观测站的风力监测数据。这是一项重复劳动,因此适合使用循环结构进行完成。

接下来的关键在于,如何根据这些条件,简单地去判断应当发布什么警告信号。这里给出一种做法。定义如下变量:

我们在循环读入的时候,每读入一个风力检测数据,更新上面提到的三个变量的值,如:

for (int i=1;i<=8;i++) {
    int x;cin >> x;//读入风力数据
    if (x>=41) cnt41++;//更新风力大于等于 41 千米/小时的气象站的个数
    if (x>=63) cnt63++;//更新风力大于等于 63 千米/小时的气象站的个数
    if (x>=118) cnt118++;//更新风力大于等于 118 千米/小时的气象站的个数
}

接下来我们可以根据这三个变量得到对应的结果分别进行判断:

需要注意,由于多个条件可能是同时满足的,例如可能同时出现 1 个气象站持续风力达到或超过 118 千米/小时,而且其他气象站均观测到了超过 63 千米/小时的风力的情况。这个时候需要输出符合要求的信号中,等级最高者。因此,需要使用 if-else 的分支结构,从最高等级的信号往较低等级的信号进行判断。

详细的代码请参考视频题解。