C: calcul de moyenne d'etudiant.

Fermé
kara - 17 sept. 2011 à 07:13
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 17 sept. 2011 à 07:59
Bonjour,
voici l'ennoncé: En utilisant la boucle do....while, ecrire le programme qui lit les notes d'etudiants, calcul leur moyenne generale et compte les moyenne >=10.On ne connait pas le nombre de n, pour arreter la saisi il faut introduire une note negative.
voici le prog que j'ai fait:

#include<stdio.h>
#include<stdlib.h>
main()
{
int n,m=0,i=0,s=0;
float moy;
do
{
printf("introduisez une note(note inferieur a 0 pour arreter)");
scanf("%d",&n);
s=s+n;
i=i+1;
if(n>=10)
m=m+1;
}
while(n>=0);
moy=s/i;
printf("la moynne est: %f \n le nombre de notes>10 est %d",moy,m);
system("pause");
}

es ce que c'est juste??

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
17 sept. 2011 à 07:59
Tu as un problème car tu comptes également la "note" négative qui te sers de condition d'arrêt. Par exemple si tu rentres directement -5 an première valeur, ta moyenne sera de -5 au lieu de 0. Idem si tu fais 5 et -5, la moyenne (sur une note) est 5 mais tu as 0.

De plus, tu vas avoir un problème avec moy=s/i, en effet s et i étant deux entiers, la division sera entière. Tu n'auras donc pas les éventuels chiffres après la virgule...
6