解题思路:

容器选择list,便于排序,且不用确定容器大小

A,B,C,D,E四个容器的元素都是对应分段的成绩,依次读入成绩并存入相应容器即可


重点是怎么快速得到人数最多的等级段,这里我们可以写一个返回值为list的比较函数,然后重复调用即可

代码很易懂,重点是学习返回值为list的函数的写法

注意事项:

无论是函数原型还是参数类型,list后尖括号内的元素类型一定不能少!!


参考代码:

#include<bits/stdc++.h>
using namespace std;
int n, o;
std::list<int> A, B, C, D, E;
list<int> f(list<int> a, list<int> b) {
    if (a.size() > b.size())
        return a;
    else
        return b;
}
int main(void) {
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> o;
        if (o <= 100 && o >= 90)
            A.push_back(o);
        else if (o <= 89 && o >= 80)
            B.push_back(o);
        else if (o <= 79 && o >= 70)
            C.push_back(o);
        else if (o <= 69 && o >= 60)
            D.push_back(o);
        else
            E.push_back(o);
    }
    
    cout << A.size() << ' ' << B.size() << ' '
         << C.size() << ' ' << D.size() << ' '
         << E.size() << endl;
    list<int> ee = f(f(f(f(A, B), C), D), E);
    cout << ee.size() << endl;
    ee.sort();
    while (!ee.empty()) {
        cout << ee.back() << ' ';
        ee.pop_back();
    }
    return 0;
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论