Clasificación de grado de estudiante OOP (Estructura)

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;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_62264287/article/details/123664448
Recomendado
Clasificación