Moyenne en langage c
Bonjour,
Je dois faire un programme qui demande à l'utilisateur un entier, l'affiche, et recommence tant
que l'entier saisi est positif ou nul. Le programme s'arrête dès que l'utilisateur entre un
entier strictement négatif. Et ensuite je dois faire en sorte qu'il calcule et affiche la moyenne des entiers positifs entrés (en ne tenant pas compte du dernier nombre entré).
J'ai fait mon programme mais je ne vois pas d'où vient mon erreur. :/
#include <stdio.h>
int main(){
int a, b, nombre;
float moyenne, compteur = 0.0;
printf("Saisissez un entier. \n");
scanf(" %d", &a);
while ((a >= 0) && (compteur >= 0.0))
{
compteur = compteur + 1;
b = a;
moyenne = a/compteur;
printf("Saisissez un entier. \n");
scanf(" %d", &a);
if ((a > 0) && (compteur == 1.0))
{
compteur = compteur + 1.0;
nombre = b + a;
moyenne = nombre/compteur;
}
else if ((a > 0) && (compteur >= 2.0))
{
compteur = compteur + 1.0;
b = nombre;
nombre = b + a;
moyenne = nombre/compteur;
}
}
printf("La moyenne des positifs entrés est %f. \n", moyenne);
return 0;}
Je dois faire un programme qui demande à l'utilisateur un entier, l'affiche, et recommence tant
que l'entier saisi est positif ou nul. Le programme s'arrête dès que l'utilisateur entre un
entier strictement négatif. Et ensuite je dois faire en sorte qu'il calcule et affiche la moyenne des entiers positifs entrés (en ne tenant pas compte du dernier nombre entré).
J'ai fait mon programme mais je ne vois pas d'où vient mon erreur. :/
#include <stdio.h>
int main(){
int a, b, nombre;
float moyenne, compteur = 0.0;
printf("Saisissez un entier. \n");
scanf(" %d", &a);
while ((a >= 0) && (compteur >= 0.0))
{
compteur = compteur + 1;
b = a;
moyenne = a/compteur;
printf("Saisissez un entier. \n");
scanf(" %d", &a);
if ((a > 0) && (compteur == 1.0))
{
compteur = compteur + 1.0;
nombre = b + a;
moyenne = nombre/compteur;
}
else if ((a > 0) && (compteur >= 2.0))
{
compteur = compteur + 1.0;
b = nombre;
nombre = b + a;
moyenne = nombre/compteur;
}
}
printf("La moyenne des positifs entrés est %f. \n", moyenne);
return 0;}
3 réponses
-
Je n'ai pas appris à utiliser "double", je dois faire ça seulement avec des "if", "while", "do..while", "for"...
-
-
-
-
-
ModérateurC'est parce que ce n'est pas un programme que l'on t'as donné, mais un algorithme.
C'est à dire la manière d'exprimer des idées en faisant abstraction du formalisme du langage.
Il est par exemple évident que tout les mots clés sont en anglais en C donc TantQue, Saisir, Afficher... tout ça ne ne peux pas être un programme C. Mais comme c'est du français, tu es censé comprendre l'idée qui est derrière, avant même de réfléchir à coder en C.
-