问题描述

编写一个程序,读入 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. 成绩表里找同学相关推荐

  1. 计算机技术要求低的工作,成绩一般的同学,可以考虑这3个专业,学历要求低,还很好找工作...

    原标题:成绩一般的同学,可以考虑这3个专业,学历要求低,还很好找工作 高考是学生的一个重要转折点.如果你高考成绩好,可以上一个好大学,你的未来会很光明.但是大部分学生只能去普通学校,因为在名牌大学拿不 ...

  2. Python+pandas查找前5位成绩最高的同学与前5个最高成绩的同学

    封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: 用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系统等配 ...

  3. c语言找出成绩的最大,C语言 求每个学生、每门课的平均成绩并找出最大值

    C语言 求每个学生.每门课的平均成绩并找出最大值 for(i=0;i { y=0; for(j=0;j { y=y+a[j][i]; } c[i]=y/3; printf("第%d门课的平均 ...

  4. 在有n个学生的成绩表里,每条信息由姓名与分数组成,要求:1按分数高低次序,输出每个学生的名字,分数相同的为同一名次,2按名次输出每个学生的姓名与分数。

    在有n个学生的成绩表里,每条信息由姓名与分数组成,要求: 1按分数高低次序,输出每个学生的名字,分数相同的为同一名次, 2按名次输出每个学生的姓名与分数. /* 在有n个学生的成绩表里,每条信息由姓名 ...

  5. 【例16 Java从键盘读入学生成绩,找出最高分,并输出学生成绩等级】

    例16:从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B' 成绩>=最高分-30 等级为'C' 其余 等级为 ...

  6. 从键盘读入学生成绩,找出最高分, 并输出学生成绩等级

    /*** 从键盘读入学生成绩,找出最高分,并输出学生成绩等级.成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B'成绩>=最高分-30 等级为'C' 其余 等级为' ...

  7. 从键盘读入学生成绩,找出最高分,并输出学生成绩等级,Java

    //从键盘读入学生成绩,找出最高分,并输出学生成绩等级. //等级>=最高分-10,等级为'A' //等级>=最高分-20,等级为'B' //等级>=最高分-30,等级为'C' // ...

  8. 【MySQL】把成绩低于总平均成绩的女同学的的成绩提高5%

    在MySQL中, 把成绩低于总平均成绩的女同学的的成绩提高5% #首先我们需要确定[成绩表]里是否存在[外键], 如果不存在,那么我们直接进行update语句即可, 如果存在[外键],我们是没办法进行 ...

  9. 将低于总平均分成绩的女同学的成绩提高5%

    有学生表s={sno学号,sex性别......}; 学生课表sc={sno学号,cno课程号,score成绩......}; 问题:将低于平均分成绩的女同学的成绩提高5% update sc set ...

  10. 2021年海淀19中高考成绩查询,北京2021高三海淀一模成绩排名,同学们速来围观...

    北京2021高三海淀一模成绩排名,同学们速来围观 2021-02-17 12:20:08 来源:网络整理 北京2021高三海淀一模成绩位置,同学们速来围观!对于一模他的价值不应该仅仅局限于他的分数,刚 ...

最新文章

  1. clockdiff-检测两台linux主机的时间差
  2. PowerShell在Exchange2010下快速创建动态通讯组
  3. Android 使用Listview的优化
  4. 第二次冲刺阶段(第七天)
  5. MySQL索引背后的数据结构及算法原理zz
  6. android studio 显示图形_显示服务器实现(一)
  7. cesium 圆形波动
  8. Matlab:厄米-高斯光束合成拉盖尔-高斯光束
  9. Python绘制二元函数图像
  10. html间超链接怎么做,超链接怎么做
  11. SDUT - 表达式语法分析——递归子程序法
  12. Lab: Username enumeration via different responses:通过不同的响应来验证用户名是否正确复盘
  13. 使用AIDL实现Android的跨进程通信
  14. CSO是什么?这家年增长48%的企业级软件公司告诉你
  15. 9月8日,直播抽奖:涂鸦智能带您掘金千亿美金智能市场
  16. 机房温度过高应这样预防
  17. 计算机网络路由器和交换机之间该如何配置,交换机怎么配置?交换机和路由器有什么区别?...
  18. log4j 配置详解(超详细)
  19. python数据分析与应用-Python数据分析与应用-课后习题答案
  20. uva 557 Buger 概率

热门文章

  1. docker下安装wekan看板工具
  2. 433MHz遥控器loop天线方案 CA-S01 CrossAir贴片天线
  3. Spring 整体结构
  4. 网络层安全协议IPSec
  5. 国内使用谷歌地图方案
  6. 虚拟机下面装XP系统、安装ensp的步骤及使用ensp过程中所遇问题的解决
  7. 通过dns2tcp绕过校园网认证进行免费上网
  8. 数据分析师面试常见的77个问题
  9. 计算机图形图像设计构图的基本形式,基本功!构图基本法则与基本形式
  10. 服务器布线属于搬迁项目吗,弱电机房服务器搬迁建设整体规划与合理布局