Trier des structures...
Introduction
Pour rappel : les structures en C.
Nous travaillons avec une structure de type "individu" composée de deux champs: un matricule, et un nom.
Les différentes occurences structures sont ensuite placées dans un tableau.
Composition de structure en C
typedef struct { unsigned int mat; char nom[20]; } Individu;
Individu tableau[NMAX];
En supposant que les valeurs ont été préalablement affectées aux différents champs, nous pourions provoquer l'affichage des structures de cette manière:
Affichage de structure en C
for ( k=0; k<NMAX; k++ )
Fonctions de tri de structure en C
Nous allons revoir nos fonctions de tri d'entiers, et les adapter à un tri de structures...
Tri de structure
void tri( Individu t[], int n, int id)
{
for (k1=0;k1<n;k1++)
{
for (K2=k1+1;k2<n;k2++)
if ( compare(t[k1],t[k2],id) >0 )
{
permute(&t[k1], &t[k2]);
Comparer et permuter des structures
{
switch(choix)
{
case NOM : return strcmp(px->nom,pyb->nom);
case NOMAT : r=strcmp(px->nom,py->nom); return r!=0 ? r : px->mat-pyb->mat;
default : return px->mat-py->mat;
void permute (Individu *x, Individu *y)
{
w=*x;
*x=*y;
*y=w;
Version en cache
17/11/2024 17:22:15 Cette version de la page est en cache (à la date du 17/11/2024 17:22:15) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 12/03/2003, dernière modification le 07/04/2023
Source du document imprimé : https://www.gaudry.be/c-trier-structure.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.