Por favor ayude a depurar este programa y explique el diseño de la estructura de datos y el diseño del módulo de este programa. ¡Es un pecado que todos aprendan el lenguaje C!
Tu organización no es muy clara. Intentaré reescribir este programa según tus ideas:
#include?lt;
#; define?N?5
typedef?struct?student
{ int?id; ??//número de estudiante float?//score
} stu;
void?ReadDat(stu?a[], int?n); //Ingrese la información del estudiante
void?jsSort(stu?a[], int?n) ;? //Ordenar por calificación
void?WriteDat(stu?a[], int?n);//Salir información del estudiante
void?main()
{ estu?s[N]; ReadDat(s, N); jsSort(s, N); WriteDat(s, N); ?a[], int?n)
{ printf("¡Empiece a ingresar la información del estudiante a continuación!\n/n"); for(int?i=0;ilt;n;i) { printf( "Ingrese el número del estudiante désimo:", i 1); scanf("d", a[i].id); printf("Ingrese la calificación del estudiante désimo:", i 1); a[i].score); }
}
void?jsSort(stu?a[], int?n)
{ int?i, j; para(i=0;ilt;n-1;i) { para(j=i 1;jlt;n;j) {
if(a[i] .scorelt;a[j ].
{
stu?temp?=?a[i];
a[i]=a[j] ;
a[j]=temp;
} } }
}
void?WriteDat(stu?a[], int?n) p>
{ printf("Todos los estudiantes están ordenados de la siguiente manera en orden descendente de sus calificaciones:\n"); printf("Número de estudiantes\t calificación\n"); ilt;n;i) { printf("d\t.1f\n", a[i].id, a[i].score }
}
); El programa se ejecuta de la siguiente manera: