JustOj 1256: 成绩排名 (结构体排序)

来源:互联网 发布:中铁四局网络采购平台 编辑:程序博客网 时间:2024/06/02 05:14

1256: 成绩排名
时间限制: 1 Sec  内存限制: 128 MB
提交: 28  解决: 21
[提交][状态][讨论版]
题目描述

有N个学生,每个学生的数据包括学号、姓名、成绩,要求按成绩大小输出学生的姓名(若成绩相等,学号小的排名在前)

输入
第一行为学生数量N
接下来的N行为每个学生的学号、姓名、成绩

输出

学生姓名,每行一个

样例输入
44 jx 972 ust 903 acm 971 oj 89
样例输出
acmjxustoj
提示

来源

#include <iostream>
#include <algorithm>
using namespace std;
struct stu
{
    int num;
    char name[10];
    int sum;
}s[100];
bool cmp(stu x,stu z)
{
    if(x.sum>z.sum){
        return 1;
    }else if(x.sum==z.sum){
        return x.num<z.num;
    }else{
        return 0;
    }
}
int main()
{
    int n,i;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>s[i].num>>s[i].name>>s[i].sum;
    }
    sort(s,s+n,cmp);
    for(i=0;i<n;i++){
        cout<<s[i].name<<endl;
    }
    return 0;
}

原创粉丝点击