奖学金 2007年普及组第一题
来源:互联网 发布:软件开发工作进度表 编辑:程序博客网 时间:2024/05/18 00:08
【问题描述】
某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。
任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:
7 279
5 279
这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:
5 279
7 279
则按输出错误处理,不能得分。
【输入】
输入文件scholar.in包含n+1行:
第1行为一个正整数n,表示该校参加评选的学生人数。
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
所给的数据都是正确的,不必检验。
【输出】
输出文件scholar.out共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。
【输入输出样例1】
scholar.in
scholar.out
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
6 265
4 264
3 258
2 244
1 237
【输入输出样例2】
scholar.in
scholar.out
8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
8 265
2 264
6 264
1 258
5 258
【限制】
50%的数据满足:各学生的总成绩各不相同
100%的数据满足:6<=n<=300
附AC码:
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>struct node{ int a,b,c,s,id;}a[301]; int n,i,j,k;int main(){ //freopen("scholar.in","r",stdin); //freopen("scholar.out","w",stdout); int i,j,k,m,n; scanf("%d",&n); for(i=1;i<=n;i++) {scanf("%d%d%d",&a[i].a,&a[i].b,&a[i].c); a[i].s=a[i].a+a[i].b+a[i].c; a[i].id=i;} for(i=1;i<=5;i++) for(j=i+1;j<=n;j++) if(a[i].s>a[j].s && i>j || a[i].s<a[j].s && a[i].a<a[j].a || a[i].s && a[i].a==a[j].a && a[i].id>a[j].id) { a[0]=a[i];a[i]=a[j];a[j]=a[0]; } for(j=1;j<=5;j++) printf("%d %d\n",a[j].id,a[j].s); return 0;}
- 奖学金 2007年普及组第一题
- noip普及组2007 奖学金
- NOIP2007 普及组 奖学金
- NOIP2005 提高组第一题 谁拿了最多奖学金
- NOIP普及组第一题:买铅笔
- 2017NOIp 普及组第一题
- NOIP2016普及组第一题——买铅笔
- NOIP2016普及组复赛第一题——买铅笔
- NOIP2016普及组第一题——买铅笔
- LUOGU P3954题解(NOIP 2017普及组第一题)
- 普及练习场 排序Ex 奖学金
- 这是我做的2015年noip普及组复赛第一题的代码,可以借鉴借鉴
- NOIP2016普及组复赛第一题ACC程序加题解pascal———买铅笔
- NOIP2016普及组复赛第一题的ACC程序加题解pascal
- 普及练习场 排序Ex 谁拿了最多奖学金
- 网易笔试题 奖学金
- [编程题]奖学金
- [编程题] 奖学金 路灯
- 浅谈操作系统之虚拟内存
- centos下安装memcached
- 控制类的视频教程
- 数的计数
- L1-035. 情人节
- 奖学金 2007年普及组第一题
- 力学类的视频教程
- 更改printk打印级别
- 多线程编程(一)
- 【c3p0】报错:Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement...
- R.java文件位置
- 深度优先搜索
- Design Pattern(10)-Immutable Pattern
- 【shell脚本】如何用shell编写一个进度条