Bonjour tout le monde !
Premier message pour ma part sur ce formidable site que j'ai parcouru de long en large !
Alors voila, je souhaite faire un tri en utilisant Qsort, mais je n'arrive pas à le faire sur le champ que je souhaite ...
Voici ma structure pour un étudiant :
Celle pour l'auditoire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 typedef struct { char matricule[25]; /* Matricule unique. */ char nom[20]; char prenom[20]; Adresse adr; double tabCotes[5]; double moyennePourcentage; }Etudiant;
Et enfin, ma fonction qSort :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct { int nbEtudiants; Etudiant classe[MAX_ETU]; int compteurMatricule; }Auditoire;
J'aimerai pouvoir faire un tri sur la moyennePourcentage, mais je n'arrive pas à accéder à ce champ, et ainsi la passer à qSort().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int fcomp (const void *a, const void *b) { const int *ia = (const int *)a; const int *ib = (const int *)b; return *ia - *ib; } void triSelectif(Auditoire *auditoireA) { int i; printf("%d", auditoireA->nbEtudiants); Sleep(1000); for(i = 0 ; i < auditoireA->nbEtudiants ; i++) qsort(&auditoireA->classe, auditoireA->nbEtudiants, sizeof(Auditoire), fcomp); }
Quelqu'un pourrait-il me fournir des conseils ?
Bien à vous,
Mornor.
Partager