Clasificación de lista PAT Grado A-1028 (25 puntos)

Título: Clasificación de listas 1028 (25 puntos)
Análisis : clasificación pura de estructuras, no hay nada que decir, solo ordena
#include <iostream>
#include<cstring>
#include<vector>
#include<stdio.h>
#include<queue>
#include<math.h>
#include<stack>
#include<algorithm>
#include<map>
#include<set>
#define MAX 99999999
using namespace std;
typedef long long ll;
struct stu{
    
    

    string id,name;
    int grade;
};
int cmp1(stu s1,stu s2)
{
    
    
    if(s1.id != s2.id) return s1.id < s2.id;
}
int cmp2(stu s1,stu s2)
{
    
    
    if(s1.name != s2.name) return s1.name <= s2.name;
    return s1.id < s2.id;
}
int cmp3(stu s1,stu s2)
{
    
    
    if(s1.grade != s2.grade) return s1.grade <= s2.grade;
    return s1.id < s2.id;
}
int main()
{
    
    
    int n,m;
    cin>>n>>m;
    stu s[n];
    for(int i = 0;i<n;i++)
        cin>>s[i].id>>s[i].name>>s[i].grade;
    if(m == 1)
        sort(s,s+n,cmp1);
    if(m == 2)
        sort(s,s+n,cmp2);
    if(m == 3)
        sort(s,s+n,cmp3);
    for(int i = 0;i<n;i++)
        cout<<s[i].id<<" "<<s[i].name<<" "<<s[i].grade<<endl;
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_43567222/article/details/112862788
Recomendado
Clasificación