El lenguaje C usa la estructura para ordenar los resultados

Titulo

     Hay información de n estudiantes (incluyendo número de estudiante, nombre y calificaciones). Escriba una función para generar la información de los estudiantes en orden de mayor a menor.

Formato de entrada:

Ingrese un número entero positivo n (n <50) e ingrese la información de n estudiantes en las n filas siguientes, incluyendo: número de estudiante, nombre y calificaciones.

Formato de salida:

Salida de información del alumno ordenada de mayor a menor, incluida la identificación del alumno, el nombre y las calificaciones.

Entrada de muestra:

Aquí hay un conjunto de entradas. Por ejemplo:

. 3
101 Zhang 78
102 Wang 91 es
103 de Li 85

Salida de muestra:

102 Wang
91103 Li
85101 Zhang 78


#include<stdio.h>
struct Stu
{
	int num;
	char name[50];
	int score;
};


int main()
{
	struct Stu s[50], * a[50];
	struct Stu* t, ** p;
	int i,j;
	int n;
	scanf("%d", &n);
	for (i = 0; i < n; ++i)
		scanf("%d%s%d", &s[i].num, s[i].name, &s[i].score);
	for (i = 0; i < n; ++i)
		a[i] = &s[i];
	for (i = 0; i < n-1; ++i)
	{
		p = a + i;
		for (j = i + 1; j < n; ++j)
			if ((*p)->score < a[j]->score)
				p = a + j;
		if (p != a + j)
		{
			t = *p;
			*p = a[i];
			a[i] = t;
		}
	}
	for (i = 0; i < n; ++i)
		printf("%d %s %d\n", a[i]->num, a[i]->name, a[i]->score);
	return 0;
}
Publicado 71 artículos originales · Me gusta 3 · Visitas 4044

Supongo que te gusta

Origin blog.csdn.net/zouchengzhi1021/article/details/105442144
Recomendado
Clasificación