1 条题解

  • 0
    @ 2025-8-24 21:15:43

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:15:43,当前版本为作者最后更新于2023-11-13 20:01:14,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

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

    考察循环结构。

    文字题解

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

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

    • cnt41 表示,风力大于等于 4141 千米/小时的气象站个数;
    • cnt63 表示,风力大于等于 6363 千米/小时的气象站个数;
    • cnt118 表示,风力大于等于 118118 千米/小时的气象站个数;

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

    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 千米/小时的气象站的个数
    }
    

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

    • 11 个气象站的持续风力达到或超过 118118 千米/小时,即 cnt118>=1 时,为 1010 号飓风信号;
    • 44 个气象站的持续风力达到或超过 6363 千米/小时,即 cnt63>=4 时,为 88 号烈风信号;
    • 44 个气象站的持续风力达到或超过 4141 千米/小时,即 cnt41>=4 时,为 33 号强风信号;
    • 其他情况则是 11 号戒备信号;

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

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

    • 1

    信息

    ID
    9398
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者