解题思路:
容器选择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分
1 人评分
程序员的表白 (C语言代码)浏览:1317 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:1027 |
最小公倍数 (C语言代码)浏览:862 |
求圆的面积 (C语言代码)浏览:1266 |
母牛的故事 (C语言代码)浏览:915 |
简单的a+b (C语言代码)浏览:572 |
输出九九乘法表 (C语言代码)浏览:1048 |
1052题解(链表操作)浏览:651 |
1197求助浏览:627 |
数列问题 (C语言代码)浏览:1019 |