Vous êtes sur la page 1sur 2

Mr HousNi * housni14@gmail.

com

TP de Programmation en Langage C avec Corrig


Statistiques des notes
Ecrire un programme qui lit les points de N lves d'une classe dans un devoir et les
mmorise dans un tableau POINTS de dimmension N.
1. Rechercher et afficher:
la note maximale,
la note minimale,
la moyenne des notes.
2. A partir des points des lves, tablir un tableau NOTES de dimmension 7 qui est compos
de la faon suivante:
NOTES[6] contient le nombre de notes 60
NOTES[6] contient le nombre de notes de 50 59
NOTES[5] contient le nombre de notes de 40 49
...
NOTES[0] contient le nombre de notes de 0 9
Etablire un graphique de barreaux reprsentant le tableau NOTES. Utilisez le symbole #
pour la reprsentation des barreaux et affichez le domaine des notes en dessous du graphique.
Ide: Dterminer la valeur maximale NMAX dans le tableau NOTES et afficher autant de
lignes sur l'cran.
Exemple: (NMAX=3)

1/2

Mr HousNi * housni14@gmail.com

Corrig
#include <stdio.h>
#include <stdlib.h>
main()
{
// dclaration des variables
int N; // nombre de NOTES
float note_max, note_min, moy; // note maximale et note minimale
int i,j; // compteur
// lecture de N
printf("Donner le nombre de NOTES: ");
scanf("%d",&N);
// dclaration du tableau
float POINTS[N];
// remplissage des NOTES
printf("\n");
for(i=0;i<N;i++){
printf("Donner la note de l'eleve %d : ",i+1);
scanf("%f",&POINTS[i]);
}
// calcul et affichage de la note maximale et de la note minimale
note_max=POINTS[0];
note_min=POINTS[0];
moy=0;
for(i=0;i<N;i++){
if(POINTS[i]>note_max) note_max=POINTS[i];
if(POINTS[i]<note_min) note_min=POINTS[i];
moy=moy+POINTS[i]/N;
}
printf("\nLa note maximale est %.2f",note_max);
printf("\nLa note minimale est %.2f",note_min);
printf("\nLa moyenne des NOTES est %.2f",moy);
// declaration et initialisation du tableau qui contiendra la distribution des NOTES
int NOTES[7]={0,0,0,0,0,0,0};
int MAXN;
// calcul de la distribution
for(i=0;i<N;i++){
if((0<=POINTS[i])&&(POINTS[i]<10)) NOTES[0]++;
if((10<=POINTS[i])&&(POINTS[i]<20)) NOTES[1]++;
if((20<=POINTS[i])&&(POINTS[i]<30)) NOTES[2]++;
if((30<=POINTS[i])&&(POINTS[i]<40)) NOTES[3]++;
if((40<=POINTS[i])&&(POINTS[i]<50)) NOTES[4]++;
if((50<=POINTS[i])&&(POINTS[i]<60)) NOTES[5]++;
if(POINTS[i]==60) NOTES[6]++;
}
printf("\n");
// calcul de MAXN
MAXN=NOTES[0];
for(i=1;i<7;i++){
if(NOTES[i]>MAXN) MAXN=NOTES[i];
}
// dclaration du tableau d'affichage
int dstr[7][MAXN];
for(i=0;i<7;i++){
for(j=0;j<NOTES[i];j++){
dstr[i][j]=1;
}
for(j=NOTES[i];j<MAXN;j++){
dstr[i][j]=0;
}
}
printf("\n\n");
// affichage de la distribution
for(i=MAXN-1;i>=0;i--){
printf("%d >",i+1);
for(j=0;j<7;j++)
{
if(dstr[j][i]==1) printf(" #######");
else printf("
");
}
printf("\n");
}
printf("
+-------+-------+-------+-------+-------+-------+-------+\n");
printf("
I 0-9
I 10-19 I 20-29 I 30-39 I 40-49 I 50-59 I 60
I");
printf("\n\n");
system("PAUSE");
}

2/2

Vous aimerez peut-être aussi