PAT甲级-排序类型-1028 List Sorting解题思路

1028 List Sorting (25 分)

在这里插入图片描述

思路

三个排序,直接秒杀!!!

代码

#include <bits/stdc++.h>
using namespace std;

struct stu{
    
    
    char id[10];
    char name[12];
    int score;
}stud[100005];

bool cmp1(stu a,stu b)
{
    
    
    if(strcmp(a.id,b.id)) return strcmp(a.id,b.id)<0;
    else return strcmp(a.id,b.id)<0;
}

bool cmp2(stu a,stu b)
{
    
    
    if(strcmp(a.name,b.name)) return strcmp(a.name,b.name)<0;
    else return strcmp(a.id,b.id)<0;
}

bool cmp3(stu a,stu b)
{
    
    
    if(a.score !=b.score) return a.score<b.score;
    else return strcmp(a.id,b.id)<0;
}
int main()
{
    
    
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i = 0;i<n;i++)
        cin>>stud[i].id>>stud[i].name>>stud[i].score;
    if(m==1)
        sort(stud,stud+n,cmp1);
    if(m==2)
        sort(stud,stud+n,cmp2);
    if(m==3)
        sort(stud,stud+n,cmp3);
    for(int i = 0;i<n;i++)
        cout<<stud[i].id<<" "<<stud[i].name<<" "<<stud[i].score<<endl;

}

猜你喜欢

转载自blog.csdn.net/weixin_43999137/article/details/114296717