1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include <stdio.h>
#define VALMAX 20 // nombre max de valeurs
int main(void)
{
int tab[VALMAX]; // le tableau des salaires
int ind; // indice de parcours du tableau
int sal; //salaire lu au clavier
int nbval; // nombre de valeurs dans le tableau (entre 7 et VALMAX)
int aux; // variable auxiliaire de permutation
int nbtriees; // nombre de cases trièes
float moy; //moyenne des salaires
int min;
int somme; /* somme des mesures */
// lire la série de valeur terminée par - 1
/* lire la première valeur */
printf("Donner le 1er salaire : ");
scanf("%i", &sal);
nbval = nbval++;
/* tant que ce n'est pas la sentinelle */
while(sal != -1)
{
/* c'est une "bonne" valeur : la compter dans le tableau */
tab[sal]++;
/* lire la valeur suivante (il reste au moins la sentinelle à lire */
printf("Donner le salaire suivant : ");
scanf("%i", &sal);
nbval = nbval++;
}
/* méthode du tri par extraction du minimum */
for(nbtriees = 0; nbtriees < nbval - 1; nbtriees++)
{
min = nbtriees;
for(ind = nbtriees + 1; ind < nbval; ind++)
{
if(tab[ind] < tab[ind+1])
{
min = ind;
}
if(min != nbtriees)
{
aux = tab[nbtriees];
tab[nbtriees] = tab[min];
tab[min] = aux;
}
}
}
/* calculer la moyenne des 5 plus grand salaires (somme puis division par 5) */
somme = 0;
for (ind = 0 ; ind < 5 ; ind++)
{
somme = somme + tab[ind];
}
moy = somme * 1.0 / 5;
/* afficher la position du min au dessus de la moyenne */
printf("Moyenne des 5 salaires les plus élevés : %d", moy);
return 0;
} |
Partager