结构体排序(奖学金)
来源:互联网 发布:dos返回windows 编辑:程序博客网 时间:2024/05/18 03:50
题目;某小学为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩 从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。 任务:先根据输入的3门课的成绩计算总 分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。
输入:输入包含多组测试数据,每个测试数据有n+1行。第1行为一个正整数n,表示该校参加评选的学生人数。第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到 100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
输出:对于每个测试数据输出5行,每行是两个用空格隔开的正整数, 依次表示前5名学生的学号和总分。两个相邻测试数据间用一个空行隔开。
可以用<algorithm>里面的sort函数,再写个cmp来规定如何排序。
// Problem#: 11982// Submission#: 3146904// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by Informatic Lab of Sun Yat-sen University#include<iostream>#include <algorithm>using namespace std;struct student{ int ch, math, eng, sum, num;}stu[10];bool cmp(student stu1,student stu2) //排序依据 { if(stu1.sum!=stu2.sum) return stu1.sum>stu2.sum; else if(stu1.ch!=stu2.ch) return stu1.ch>stu2.ch; else return stu1.num<stu2.num;}int main(){ int i,n; bool first = true; //每个案例中间隔一个空行 while(cin>>n) { for(i=0;i<n;i++) { stu[i].num=i+1; cin>>stu[i].ch>>stu[i].math>>stu[i].eng; stu[i].sum = stu[i].ch+stu[i].math+stu[i].eng; } if(first) first=false; else cout<<endl; sort(stu,stu+n,cmp); //排序 for(i=0;i<5;i++) cout<<stu[i].num<<" "<<stu[i].sum<<endl; } return 0;}
0 0
- 结构体排序(奖学金)
- codevs 1142 奖学金(结构体排序)
- “奖学金” 中结构体和排序
- 1589: 奖学金 (结构体)
- 1192: 奖学金(结构体专题)
- noip2007 奖学金 (排序)
- 【结构体】最多的奖学金
- NYOJ 60 谁获得了最高奖学金(结构体)
- 1482. 奖学金(关于结构体与qsort的思考)
- NYoj60谁获得了最高奖学金(结构体)
- NYOJ 60 谁获得了最高奖学金(结构体的应用)
- 洛谷Oj-奖学金-排序
- Vijos P1398 奖学金【排序】
- NYOJ 60 谁获得了最高奖学金【结构体】
- 谁获得了最高奖学金[结构体数组]
- 洛谷 1093——奖学金(排序Ex)
- 奖学金 qsort函数多重排序
- 奖学金 灵活的拓扑排序
- atitit.软件开发--socket框架选型--netty vs mina j
- mac os安装eclipse svn插件遇到的问题
- HDU 2955 Robberies 0-1背包 浮点数处理
- day73,page90
- php在线打分
- 结构体排序(奖学金)
- Linux Epoll介绍和程序实例
- [Cocos2d-x开发问题-2] 有关Sprite的各种操作
- Android学习笔记(08)——Android应用程序和Activity的生命周期
- C++四种cast
- 2014_11_06 Topic:Improved Iterative Scaling
- pythonunittest
- 阶乘计算
- linux epoll模型