/* Ce programme calcule la mediane d'un tableau de nombres aleatoires */ #include #include #define N 32 #define IMAX 256 int a[N]; int effectif[IMAX]; /* Fonction mediane, renvoie la mediane des valeurs du tableau a */ int mediane() { int i; /* Calcul des effectifs par valeurs */ for (i=0; i < N;i++) { effectif[i] = effectif[i] + 1; } /* Recherche de la mediane */ somme = 0; /* contient les effectifs cumules -> i */ for (i=0 ; i < IMAX ; i++) { somme = somme + effectif[i] ; if (2*somme >= N) return i; /* demi effectif total atteint */ } } void main() { int i; /* Initialiser le generateur aleatoire */ InitQuickDraw(); printf("Clicker pour demarrer !!!\n"); while (!Button()) i++; randSeed = i; /* Initialiser le tableau de valeurs a, par des entiers aleatoires */ for (i=0 ; i < N;i++) a[i] = abs(Random()) % IMAX; /* Afficher le tableau des valeurs */ for (i=0; i < N; i++) printf("%3d ",a[i]); printf("\n"); printf("mediane : %3d\n",mediane()); }