首页 > 代码库 > JustOj 2039: 成绩排名 (结构体排序)
JustOj 2039: 成绩排名 (结构体排序)
题目描述
每次期末考试成绩出来之前的一段时间大豪哥心里都是痛苦的,总感觉自己会在班上排名特别差。所以当成绩出来以后大豪哥想快点知道班上的总排名,以便知道自己的排名。(PS:大豪哥班上有个学霸名叫日天,又名泰迪,不要问我为什么,因为泰迪的行为决定的)
输入
多组测试数据,至文件结尾。
先输入每个班上有n个同学,这个学期有m门课程(1<=n,m<=100)
接下来有n行,每行的输入格式为学号id,姓名name,课程成绩k1,课程成绩k2... ,课程成绩km.(学号在int型范围以内,0<=ki<=100,姓名长度在20个字符以下)
输出
输出班上每个同学排名,并输出总分及排名(如果总分相同就按学号从小到大输出,但是排名还是相同的)输出格式见样例
样例输入
4 41 Taidi 100 100 90 902 Dahaoge 60 60 70 603 Yeshen 90 90 100 1004 Wangpangzi 50 60 100 80
样例输出
1 Taidi 100 100 90 90 Sum = 380 Ranking = 13 Yeshen 90 90 100 100 Sum = 380 Ranking = 14 Wangpangzi 50 60 100 80 Sum = 290 Ranking = 32 Dahaoge 60 60 70 60 Sum = 250 Ranking = 4
题解:结构体排序
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <vector> 6 #include <cstdlib> 7 #include <iomanip> 8 #include <cmath> 9 #include <ctime>10 #include <map>11 #include <set>12 #include <queue>13 using namespace std;14 #define lowbit(x) (x&(-x))15 #define max(x,y) (x>y?x:y)16 #define min(x,y) (x<y?x:y)17 #define MAX 10000000000000000018 #define MOD 100000000719 #define pi acos(-1.0)20 #define ei exp(1)21 #define PI 3.14159265358979323846222 #define INF 0x3f3f3f3f3f23 #define mem(a) (memset(a,0,sizeof(a)))24 typedef long long ll;25 ll gcd(ll a,ll b){26 return b?gcd(b,a%b):a;27 }28 const int N=110;29 const int mod=1e9+7;30 struct node31 {32 int id;33 string name;34 int grade[N];35 int sum;36 }stu[N];37 bool cmp(node a,node b)38 {39 if(a.sum==b.sum)40 return a.id<b.id;41 return a.sum>b.sum;42 }43 int main()44 {45 int n,m,num;46 cin.sync_with_stdio(false);47 while(cin>>n>>m){48 for(int i=0;i<n;i++){49 cin>>stu[i].id>>stu[i].name;50 stu[i].sum=0;51 for(int j=0;j<m;j++){52 cin>>stu[i].grade[j];53 stu[i].sum+=stu[i].grade[j];54 }55 }56 sort(stu,stu+n,cmp);57 for(int i=0;i<n;i++){58 cout<<stu[i].id<<" "<<stu[i].name;59 for(int j=0;j<m;j++){60 cout<<" "<<stu[i].grade[j];61 }62 if(i==0) num=1;63 else if(stu[i].sum!=stu[i-1].sum)64 num=i+1;65 cout<<" Sum = "<<stu[i].sum<<" Ranking = "<<num<<endl;66 }67 }68 return 0;69 }
JustOj 2039: 成绩排名 (结构体排序)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。