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 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| #include <stdio.h>
#include <stdlib.h>
//constantes:
#define NB_NOTES_MAX 100
#define NB_ELEVES_MAX 100
int main(int argc, char *argv[])
{
//variables :
int n; //designe le n-ième élève
int m; //curseur pour designer l'eleve n-1
int i; //curseur pour designer la note i de l'élève n-1
float notes[NB_ELEVES_MAX][NB_NOTES_MAX];//matrice regroupant les notes de chaque élève
float cumul; //somme des notes (pour un élève)
int nb_notes;
int nb_eleves;
char rep;
//demande, saisie, affichage du nombre d'élèves :
printf("nombre d eleves :");
scanf("%u",&nb_eleves);
printf("vous avez %u eleves\n\n",nb_eleves);
//saisie des notes des n élèves
for(m=0;m<nb_eleves;m++)
{
n=m+1;
cumul=0; //somme des notes raz
//saisie des notes de l'élève n
for (i=1;i<=NB_NOTES_MAX;i++)
{
//pose la question après la saisie d'une note
if(i!=1) //pose la question après la saisie d'une note
{
printf("Voulez-vous arreter la saisie ? (saisir 'o' ou 'n') ");//affichage question
do //test si l'on a bien saisit un 'o' ou un 'n'
{
fflush(stdin);
scanf("%c",&rep); //saisie reponse
//printf("drapeau"); //essayez avec ce drapeau vous serez peut-etre surpris,
//en cherchant à resoudre ce problème
//j'ai compris la complexité de l'utilisation des caracteres
//j'avais d'autres alternatives comme utiliser une chaine de caractere au lieu d'un caractere, ça fonctionne !
}
while(rep!='o'&&rep!='n');
}
//fin if
//l'utilisateur a saisit au moins une note et veux arreter
if(i!=1&&rep!='n'){nb_notes=i-1;i=NB_NOTES_MAX;}
//sinon saisie de la note i de l'élève n
else
{
printf("saisir note %u de l eleve %u: ",i,n);
scanf("%f",¬es[m][i]);
cumul=cumul+notes[m][i]; //calcul de la nouvelle somme des i notes de l'élève n
}
} //fin du cycle de saisie des i notes de l'élève n
//calcul de la moyenne des i notes de l'élève n
notes[m][0]=cumul/nb_notes;
printf("\n"); //saut de ligne après saisie des notes d'un élève
} //fin du cycle de saisie des notes des n élèves
// affichage des moyennes
printf("Les moyennes sont :\n");
for (m=0;m<nb_eleves;m++)
{
n=m+1;
printf("eleve %u m = %.2f\n",n,notes[m][0]);
}
system("PAUSE");
return 0;
} |
Partager