4078. 成绩表里找同学
问题描述
编写一个程序,读入 N 个同学的姓名和语数外三门功课的单科成绩,对其按照一定的排序规则排序形成一张成绩表(先按总分从高到低排序,总分相同则按语文成绩由高到低排序,仍然相同则按数学成绩由高到低排序,若总分和单科成绩均相同则最后按姓名的字典序排序)。最后给定一个数字 K(K<=N) ,输出在这张排好序的成绩表中位置在第 K 位的同学的姓名和总分。
字典序举例说明:
abc > abd
a > aa
输入输出描述
输入
- 第一行输入一个正整数 N(1<=N<=1024),代表接下来将录入 N 个学生的成绩。
- 接下来 N 行录入 N 条学生的成绩记录,每条记录依次为姓名,语文成绩,数学成绩,英语成绩,这四个字段以空格分隔。姓名为字符串(仅包含小写字母,不含空格,长度<=19),学生之间不会重名。三科成绩均为整数(0~100)。
- 最后输入一个正整数 K(1<=K<=N),代表需要在成绩表中从前往后找到的位置。
输出
- 在成绩表中从前往后处在第 K 位的同学的姓名和总分,中间以空格分隔。
程序运行示例1
Sample Input 1
2
tom 90 91 92
lucy 91 90 92
1
Sample Output 1
lucy 273
程序运行示例2
Sample Input 2
4
lily 90 100 88
jack 87 79 95
hanz 90 89 71
david 90 89 71
4
Sample Output 2
hanz 250
#include<algorithm> #include<iostream> using namespace std;struct student{string name;int chinese;int math;int english; };student s[1025];bool compare(student a,student b){if(a.chinese+a.english+a.math!=b.english+b.chinese+b.math){return a.chinese+a.english+a.math>b.english+b.chinese+b.math;}else{if(a.chinese!=b.chinese){return a.chinese>b.chinese;}else{if(a.math!=b.math){return a.math>b.math;}else{if(a.english!=b.english){return a.english>b.english;}else{return a.name<b.name;}}}} }int main(){int n;//freopen("input.txt","r",stdin);cin>>n;for(int i=0;i<n;i++){cin>>s[i].name>>s[i].chinese>>s[i].math>>s[i].english; }sort(s,s+n,compare);int k;cin>>k;cout<<s[k-1].name<<" "<<s[k-1].chinese+s[k-1].english+s[k-1].math;return 0; }
转载于:https://www.cnblogs.com/bernieloveslife/p/7911751.html
4078. 成绩表里找同学相关推荐
- 计算机技术要求低的工作,成绩一般的同学,可以考虑这3个专业,学历要求低,还很好找工作...
原标题:成绩一般的同学,可以考虑这3个专业,学历要求低,还很好找工作 高考是学生的一个重要转折点.如果你高考成绩好,可以上一个好大学,你的未来会很光明.但是大部分学生只能去普通学校,因为在名牌大学拿不 ...
- Python+pandas查找前5位成绩最高的同学与前5个最高成绩的同学
封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: 用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系统等配 ...
- c语言找出成绩的最大,C语言 求每个学生、每门课的平均成绩并找出最大值
C语言 求每个学生.每门课的平均成绩并找出最大值 for(i=0;i { y=0; for(j=0;j { y=y+a[j][i]; } c[i]=y/3; printf("第%d门课的平均 ...
- 在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。
在有n个学生的成绩表里,每条信息由姓名与分数组成,要求: 1按分数高低次序,输出每个学生的名字,分数相同的为同一名次, 2按名次输出每个学生的姓名与分数. /* 在有n个学生的成绩表里,每条信息由姓名 ...
- 【例16 Java从键盘读入学生成绩,找出最高分,并输出学生成绩等级】
例16:从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B' 成绩>=最高分-30 等级为'C' 其余 等级为 ...
- 从键盘读入学生成绩,找出最高分, 并输出学生成绩等级
/*** 从键盘读入学生成绩,找出最高分,并输出学生成绩等级.成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B'成绩>=最高分-30 等级为'C' 其余 等级为' ...
- 从键盘读入学生成绩,找出最高分,并输出学生成绩等级,Java
//从键盘读入学生成绩,找出最高分,并输出学生成绩等级. //等级>=最高分-10,等级为'A' //等级>=最高分-20,等级为'B' //等级>=最高分-30,等级为'C' // ...
- 【MySQL】把成绩低于总平均成绩的女同学的的成绩提高5%
在MySQL中, 把成绩低于总平均成绩的女同学的的成绩提高5% #首先我们需要确定[成绩表]里是否存在[外键], 如果不存在,那么我们直接进行update语句即可, 如果存在[外键],我们是没办法进行 ...
- 将低于总平均分成绩的女同学的成绩提高5%
有学生表s={sno学号,sex性别......}; 学生课表sc={sno学号,cno课程号,score成绩......}; 问题:将低于平均分成绩的女同学的成绩提高5% update sc set ...
- 2021年海淀19中高考成绩查询,北京2021高三海淀一模成绩排名,同学们速来围观...
北京2021高三海淀一模成绩排名,同学们速来围观 2021-02-17 12:20:08 来源:网络整理 北京2021高三海淀一模成绩位置,同学们速来围观!对于一模他的价值不应该仅仅局限于他的分数,刚 ...
最新文章
- clockdiff-检测两台linux主机的时间差
- PowerShell在Exchange2010下快速创建动态通讯组
- Android 使用Listview的优化
- 第二次冲刺阶段(第七天)
- MySQL索引背后的数据结构及算法原理zz
- android studio 显示图形_显示服务器实现(一)
- cesium 圆形波动
- Matlab:厄米-高斯光束合成拉盖尔-高斯光束
- Python绘制二元函数图像
- html间超链接怎么做,超链接怎么做
- SDUT - 表达式语法分析——递归子程序法
- Lab: Username enumeration via different responses:通过不同的响应来验证用户名是否正确复盘
- 使用AIDL实现Android的跨进程通信
- CSO是什么?这家年增长48%的企业级软件公司告诉你
- 9月8日,直播抽奖:涂鸦智能带您掘金千亿美金智能市场
- 机房温度过高应这样预防
- 计算机网络路由器和交换机之间该如何配置,交换机怎么配置?交换机和路由器有什么区别?...
- log4j 配置详解(超详细)
- python数据分析与应用-Python数据分析与应用-课后习题答案
- uva 557 Buger 概率