题目描述
解题思路
可利用 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 |
|