Tema Descripción
Hay datos de N estudiantes, ordene los datos de los estudiantes por calificaciones de menor a mayor, si las calificaciones son las mismas, ordene por las iniciales de los nombres, si las iniciales son las mismas, ordene por edad y genere la información ordenada de N estudiantes.
ingresar
Hay múltiples conjuntos de datos de prueba, y la primera línea de cada entrada tiene un número entero N (N<=1000), y las siguientes N líneas incluyen los datos de N estudiantes.
Los datos de cada alumno incluyen nombre (una cadena de longitud hasta 100), edad (entero), grado (número positivo menor o igual a 100).
producción
Ordene la información de los estudiantes por calificaciones y, si las calificaciones son las mismas, ordene alfabéticamente por nombre.
Luego, genere la información del estudiante en el siguiente formato:
nombre, edad, grado
ejemplo de entrada 1
3
abc 20 99
bcd 19 97
cama 20 97
muestra de salida 1
bcd 19 97
cama 20 97
abc 20 99
análisis de pensamiento
Para tantas condiciones de clasificación, solo use la función de clasificación para ordenar, es muy simple.
Observe las reglas de clasificación personalizadas para la función de clasificación.
código de CA
#include<iostream>
#include<algorithm>
using namespace std;
struct student
{
int old,score;
string name;
};
bool leibniz(student a,student b)
{
if(a.score!=b.score)
return a.score<b.score;
if(a.name[0]!=b.name[0])
return a.name[0]<b.name[0];
return a.old<b.old;
}
int main()
{
int t,i;
cin>>t;
student a[t];
for(i=0;i<t;i++)
cin>>a[i].name>>a[i].old>>a[i].score;
sort(a,a+t,leibniz);
for(i=0;i<t;i++)
cout<<a[i].name<<' '<<a[i].old<<' '<<a[i].score<<endl;
}