B3887 [语言月赛 202311] 风球 题解
Source & Knowledge
2023 年 11 月语言月赛,由洛谷网校入门计划/基础计划提供。
考察循环结构。
文字题解
本题要求读入
接下来的关键在于,如何根据这些条件,简单地去判断应当发布什么警告信号。这里给出一种做法。定义如下变量:
cnt41表示,风力大于等于41 千米/小时的气象站个数;cnt63表示,风力大于等于63 千米/小时的气象站个数;cnt118表示,风力大于等于118 千米/小时的气象站个数;
我们在循环读入的时候,每读入一个风力检测数据,更新上面提到的三个变量的值,如:
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 千米/小时,即cnt118>=1时,为10 号飓风信号; - 有
4 个气象站的持续风力达到或超过63 千米/小时,即cnt63>=4时,为8 号烈风信号; - 有
4 个气象站的持续风力达到或超过41 千米/小时,即cnt41>=4时,为3 号强风信号; - 其他情况则是
1 号戒备信号;
需要注意,由于多个条件可能是同时满足的,例如可能同时出现 if-else 的分支结构,从最高等级的信号往较低等级的信号进行判断。
详细的代码请参考视频题解。