#include #include #define NB_ELEMENTS 7 static int compar_short(const void *p1, const void *p2) { short s1 = *((short *)p1); short s2 = *((short *)p2); return (int)(s1 - s2); } static int compar_double(const void *p1, const void *p2) { double s1 = *((double *)p1); double s2 = *((double *)p2); if(s1 < s2) return -1; else if(s1 > s2) return 1; else return 0; } void print_tab_short(short tab[], size_t nmemb) { int i; for (i = 0 ; i < nmemb ; i++) { printf("tab_short[%d] = %d\n", i, tab[i]); } } void print_tab_double(double tab[], size_t nmemb) { int i; for (i = 0 ; i < nmemb ; i++) { printf("tab_double[%d] = %lf\n", i, tab[i]); } } int main(){ short tab_short[NB_ELEMENTS] = {6, 5, 4, 3, 2, 1, 0}; double tab_double[NB_ELEMENTS] = {7.1, 6.2, 5.3, 4.4, 3.5, 2.6, 1.7}; printf("tab_short avant tri\n"); print_tab_short(tab_short, NB_ELEMENTS); qsort(tab_short, NB_ELEMENTS, sizeof(tab_short[0]), compar_short); printf("tab_short après tri\n"); print_tab_short(tab_short, NB_ELEMENTS); printf("tab_double avant tri\n"); print_tab_double(tab_double, NB_ELEMENTS); qsort(tab_double, NB_ELEMENTS, sizeof(tab_double[0]), compar_double); printf("tab_double après tri\n"); print_tab_double(tab_double, NB_ELEMENTS); return EXIT_SUCCESS; }