博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1137 Final Grading
阅读量:6078 次
发布时间:2019-06-20

本文共 1114 字,大约阅读时间需要 3 分钟。

题意:排序题。

思路:通过unordered_map来存储考生姓名与其成绩信息结构体的映射,成绩初始化为-1,在读入数据时更新各个成绩,最后计算最终成绩并把符合条件的学生存入vector,再排序即可。需要注意的是,计算最终成绩时记得"G must be rounded up to an integer"。关于取整函数,总结在。

代码:

#include 
#include
#include
#include
#include
#include
#include
using namespace std;struct Student{ string id; int Gp,Gm,Gf,Gtot; Student():id(""),Gp(-1),Gm(-1),Gf(-1),Gtot(0){}};unordered_map
mp;vector
stu;bool cmp(Student a,Student b){ if(a.Gtot!=b.Gtot) return a.Gtot>b.Gtot; else return a.id
>p>>m>>f; string id; int score; for(int i=0;i
>id>>score; mp[id].id=id; mp[id].Gp=score; } for(int i=0;i
>id>>score; mp[id].id=id; mp[id].Gm=score; } for(int i=0;i
>id>>score; mp[id].id=id; mp[id].Gf=score; } for(auto it:mp){ Student st=it.second; if(st.Gm>st.Gf) st.Gtot=round(st.Gm*0.4+st.Gf*0.6);//注意四舍五入 else st.Gtot=st.Gf; if(st.Gp>=200 && st.Gtot>=60) stu.push_back(st); } sort(stu.begin(),stu.end(),cmp); for(auto it:stu) cout<
<<" "<
<<" "<
<<" "<
<<" "<
<<"\n"; return 0;}

 

转载于:https://www.cnblogs.com/kkmjy/p/9570023.html

你可能感兴趣的文章
专访孙睿 :能做自己,去做自己想做的,是件挺幸福的事儿
查看>>
开发者前期是如何学代码的(心得)
查看>>
Linux笔记(usermod命令,用户密码管理,mkpasswd)
查看>>
软件开发--深入浅出处理器
查看>>
文件查找命令
查看>>
文件权限管理
查看>>
链表节点的删除(无重复)
查看>>
eyoucms compare比较标签
查看>>
MPLS ×××概述
查看>>
jQuery+PHP+Mysql在线拍照和在线浏览照片
查看>>
nginx热部署升级
查看>>
使用JRockit 能否加速Myeclipse
查看>>
职场老司机才知道的Excel技巧,一般人不知道哦!
查看>>
Spring3与hibernate4注解式声明事务管理
查看>>
【linux下c语言服务器开发系列1】多进程处理多客户端的连接
查看>>
线性表的顺序存储结构
查看>>
初识centos7与centos6的区别
查看>>
批量部署管理服务器的成熟方案Puppet,Func,cfengine汇总贴
查看>>
spring aop 嵌套调用的问题 (同一方法内调用切面切不到)
查看>>
CentOS6 安装Redis
查看>>