Lit au clavier des entiers positifs et calcul leur moyenne
themessenger
Messages postés45Date d'inscriptionvendredi 26 octobre 2007StatutMembreDernière intervention 5 janvier 2009
-
8 févr. 2008 à 17:34
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
9 févr. 2008 à 10:19
bonjour on vient de commencer la programmation c ...et j'ai petit souci avec mon code .J'arrive pas à calculer la moyenne !!! quand j'execute il m'affiche la moyenne est égal a zero ....
merci de m'aider
cordialement..........
voici mon code:
#include <stdio.h>
main()
{
//l'entier à saisir
int n;
//nombre d'ebtiers saisit
int nb_Entier = 0;
//la somme des entiers saisit
int somme = 0;
//la moyenne des entiers saisit
float moyenne ;
printf("Saisir un entier positif,negatif pour arreter :\n");
//Saisi de l'entier au clavier
scanf("%d",&n);
// tant que l'entier saisi est positif on rentre dans la boucle
while (n>0){
moyenne = 0;
somme = somme + n ;
nb_Entier ++;
scanf("%d",&n);//Saisi de l'entier au clavier
}
//nb_Entier--;
//affichage du nombre d'entiers saisi
printf("Le nombre d'entiers que vous avez saisi %d \n",nb_Entier);
//affichage de la somme des entiers saisi
printf("La somme des entiers saisi est de %d :\n",somme);
//calcul de la moyenne
moyenne = somme%nb_Entier;
//affichage de la moyenne
printf("La moyenne est %d \n!!!",moyenne);
}
the messenger
A voir également:
Écrire un programme qui calcule la moyenne des notes
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 8 févr. 2008 à 18:00
Bonjour
1) "somme % nb_Entier" donne le modulo et non la moyenne ! il faut "somme / nb_Entier".
2) "moyenne" étant un float, il faut "%f" dans le format de printf.
3) le calcul "somme / nb_Entier" étant fait sur des entiers, le résultat sera tronqué.
#include <stdio.h>
main()
{
int n; // entier à saisir
int nb_Entier = 0; // nombre d'entiers saisi
int somme = 0; // somme des entiers saisis
float moyenne; // moyenne des entiers saisis
while (true)
{
// --- Saisir l'entier au clavier
printf("Saisir un entier positif (negatif ou nul pour arreter) : ");
scanf("%d",&n);
if (n <= 0) break;
somme += n;
++nb_Entier;
}
//--nb_Entier;
// --- Afficher le nombre d'entiers saisis
printf("\nNombre d'entiers saisis = %d\n",nb_Entier);
// --- Afficher la somme des entiers saisis
printf("Somme des entiers saisis = %d\n",somme);
// --- Calculer et afficher la moyenne
moyenne = (float)somme / (float)nb_Entier;
printf("Moyenne = %.2f\n\n",moyenne);
}
Saisir un entier positif (negatif ou nul pour arreter) : 1
Saisir un entier positif (negatif ou nul pour arreter) : 2
Saisir un entier positif (negatif ou nul pour arreter) : 3
Saisir un entier positif (negatif ou nul pour arreter) : 4
Saisir un entier positif (negatif ou nul pour arreter) : 0
Nombre d'entiers saisis = 4
Somme des entiers saisis = 10
Moyenne = 2.50
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 8 févr. 2008 à 18:09
Salut.
En effet.
Seulement :
1) int main(int argc,char** argv) est plus standard
2)je sais que ce programme n'est fait qu'a titre d'exemple et que j'ignore totalement son but au sein d'un eventuel programme plus complexe seuelement dans ce cas autant remplacer :
printf("Moyenne = %.2f\n\n",moyenne);
par :
printf("Moyenne = %.2f\n\n",(float)somme / (float)nb_Entier);
Ca fait une variable de moin .
(je chipote ?)
Si l'informatique été de l'alcool il y aurait des genies partout
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 9 févr. 2008 à 00:10
"1) int main(int argc,char** argv) est plus standard"
Pas plus standard que la méthode précédente. Si on utilise pas la ligne de commande, on s'en fout.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 févr. 2008 à 10:19
Pour être tout à fait clair, tu ne chipotes pas mais tu as simplement dit nimporte quoi.
C'est le compilo qui décide des variables qui existeront et de ce qui ne sera traité que dans les registres, le compilo et personne d'autre à moins d'écrire en ASM.