解题思路:
容器选择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++代码)浏览:890 |
回文数(一) (C语言代码)浏览:809 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:593 |
【亲和数】 (C语言代码)浏览:628 |
1071题解浏览:585 |
字符串的输入输出处理 (C语言代码)浏览:1085 |
The 3n + 1 problem (C语言代码)浏览:550 |
判定字符位置 (C语言代码)浏览:849 |
母牛的故事 (C语言代码)浏览:625 |