/* calcul juste de la mediane */ #include #include #define N 8 #define IMAX 256 int a[N]; int effectif[IMAX]; int mediane(void) { int i; int somme; /* declaration locale de somme comme un entier */ for (i=0; i < N;i++) { effectif[a[i]] = effectif[a[i]] + 1; /* cumul des effectifs */ } somme = 0; for (i=0 ; i < IMAX ; i++) { somme = somme + effectif[i] ; if (2*somme >= N) return i; } } void main() { int i; for (i=0 ; i < N;i++) a[i] = random(IMAX); for (i=0; i < N; i++) printf("%3d ",a[i]); printf("\n"); printf("mediane : %3d\n",mediane()); getchar(); }