1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#include <stdio.h>
#include <stdlib.h>
typedef struct etudiant
{
char nom[16];
char prenom[16];
int age;
float moyenne;
} Etudiant;
Etudiant T[10];
/// fonction de comparaison de deux étudiants
int comparer(Etudiant *a, Etudiant *b)
{
return (int) (a->moyenne*100-b->moyenne*100);
}
/// fonction principale
int main(int argc, char *argv[])
{
int n,i;
/** entrée nombre d'étudiants à classer */
printf("Donner le nombre d'etudiants");
scanf("%d",&n);
/** limiter ce nombre à la taille du tableau */
if (n>10)
n=10;
/** entrée brute des résultats */
for (i=0; i<n; i++)
{
printf("Nom :");
scanf("%s",T[i].nom);
printf("Prenom :");
scanf("%s",T[i].prenom);
printf("Moyenne :");
scanf("%f",&T[i].moyenne);
}
/** tri rapide des résultats */
qsort(T,n,sizeof(Etudiant),(void *) comparer);
/** affichage du tableau trié */
for(i=0; i<n; i++)
{
printf("\nNom %s",T[i].nom);
printf("\nPrenom %s",T[i].prenom);
printf("\nMoyenne %f",T[i].moyenne);
}
/** attendre la frappe d'une touche */
getchar();
/** attendre la frappe d'une touche (encore !) */
getchar();
/** fin */
return 0;
} |