#include <string.h> struct contact { char nom[40]; char prenom[40]; char adresse[20]; char ville[3]; char codepostal[11]; }; void tri_struct(struct contact elements[], int n_gauche, int n_droite) { register int i, j; char *x; struct contact temp; i = n_gauche; j = n_droite; x = elements[(n_gauche+n_droite)/2].codepostal; do { while((strcmp(elements[i].codepostal,x) < 0) && (i < n_droite)) i++; while((strcmp(elements[j].codepostal,x) > 0) && (j > n_gauche)) j--; if(i <= j) { temp = elements[i]; elements[i] = elements[j]; elements[j] = temp; i++; j--; } } while(i <= j); if(n_gauche < j) tri_struct(elements, n_gauche, j); if(i < n_droite) tri_struct(elements, i, n_droite); } void quick_struct(struct contact elements[], int count) { tri_struct(elements,0,count-1); } |
----------------------------------------------------------------------------