题目描述
解题思路
可利用 map 将字符串型的学号转换为整型的序号,方便查找。输入全部成绩后,遍历每个学生同时计算最终成绩,然后将成绩合格的人加入结果数组,最后对结果数组进行排序。
对于将输出的合格的学生,如果某次考试成绩不存在,那只可能是期中考试。如果其他考试有缺考则不可能合格。所以只要将期中考成绩默认为 -1,最后可直接输出无需另外判断。
易错点
- 最终成绩要四舍五入
也许陌生的知识点
- if(nametoi.find(id) == nametoi.end()){ nametoi[id] = cnt++;}- 可利用 map 将字符串类型的 id 转换成整数序号,方便处理
- 需要的头文件:map
 
- sort(S, S + n, cmp);- 排序函数,实现 [first, last) 范围内的排序,可以自定义排序策略 cmp 函数
- 不带 cmp 参数的 sort 函数实现从小到大排序
- 所需头文件: algorithm
 
- vector<int> ans;- 实现变长数组,元素类型可任意指定- ans.push_back(num[i])往变长数组末尾中添加一个元素
- ans.pop_back()删除变长数组中最后一个元素
 
- 需要的头文件:vector
 
- 实现变长数组,元素类型可任意指定
代码示例:
| 1 | 
 |