Exercice langage C programme affiche les statistique des notes

Ecrire un programme qui lit les points de N élèves d'une classe dans un devoir et les mémorise dans un tableau POINTS de dimension N.

* Rechercher et afficher:

- la note maximale,

- la note minimale,

- la moyenne des notes

* A partir des POINTS des élèves, établir un tableau NOTES de dimension 7 qui est composé de la façon suivante:

NOTES[6] contient le nombre de notes 60

NOTES[5] contient le nombre de notes de 50 à 59

NOTES[4] contient le nombre de notes de 40 à 49

...

NOTES[0] contient le nombre de notes de 0 à 9

 

Etablir un graphique de barreaux représentant le tableau NOTES. Utilisez les symboles ####### pour la représentation des barreaux et affichez le domaine des notes en dessous du graphique.

Idée: Déterminer la valeur maximale MAXN dans le tableau NOTES et afficher autant de lignes sur l'écran. (Dans l'exemple ci-dessous, MAXN = 6).

 

Exemple:

 La note maximale est 58
La note minimale est 13
La moyenne des notes est 37.250000


6 > #######
5 > ####### #######
4 > ####### ####### #######
3 > ####### ####### ####### #######
2 > ####### ####### ####### ####### #######
1 > ####### ####### ####### ####### #######
+-------+-------+-------+-------+-------+-------+-------+
I 0 - 9 I 10-19 I 20-29 I 30-39 I 40-49 I 50-59 I 60 I





#include <stdio.h>
main()
{
int POINTS[50]; /* tableau des points */
int NOTES[7]; /* tableau des notes */
int N; /* nombre d'élèves */
int I, IN; /* compteurs d'aide */
int SOM; /* somme des points */
int MAX, MIN; /* maximum, minimum de points */
int MAXN; /* nombre de lignes du graphique */

/* Saisie des données */
printf("Entrez le nombre d'élèves (max.50) : ");
scanf("%d", &N);
printf("Entrez les points des élèves:\n");
for (I=0; I<N; I++)
{printf("Elève %d:", I+1);
scanf("%d", &POINTS[I]);
}
printf("\n");

/* Calcul et affichage du maximum et du minimum des points */
for (MAX=0, MIN=60, I=0; I<N; I++)
{if (POINTS[I] > MAX) MAX=POINTS[I];
if (POINTS[I] < MIN) MIN=POINTS[I];
}
printf("La note maximale est %d \n", MAX);
printf("La note minimale est %d \n", MIN);
/* Calcul et affichage de la moyenne des points */
for (SOM=0,I=0 ; I<N ; I++)
SOM += POINTS[I];
printf("La moyenne des notes est %f \n", (float)SOM/N);

/* Etablissement du tableau NOTES */
for (IN=0 ; IN<7 ; IN++)
NOTES[IN] = 0;
for (I=0; I<N; I++)
NOTES[POINTS[I]/10]++;

/* Recherche du maximum MAXN dans NOTES */
for (MAXN=0,IN=0 ; IN<7 ; IN++)
if (NOTES[IN] > MAXN)
MAXN = NOTES[IN];

/* Affichage du graphique de barreaux */
/* Représentation de MAXN lignes */
for (I=MAXN; I>0; I--)
{
printf("\n %2d >", I);
for (IN=0; IN<7; IN++)
{
if (NOTES[IN]>=I)
printf(" #######");
else
printf(" ");
}
}

/* Affichage du domaine des notes */
printf("\n +");
for (IN=0; IN<7; IN++)
printf("-------+");
printf("\n I 0 - 9 I 10-19 I 20-29 "
"I 30-39 I 40-49 I 50-59 I 60 I\n");
return 0;
}