Exercice en c moyenne

Fermé
bill - 18 oct. 2007 à 15:09
 saro - 16 nov. 2010 à 20:09
Bonjour,
un programme qui demande des nombre puis en fait la moyenne mais lorsque l'utilisateur entre -1 cela veut dire qu'il veut arrêter de donner des nombre; voici mon programme mais je suis bloqué!!!

#include <stdlib.h>
#include <stdio.h>

void main (void)

{
int nombre;
float moyenne;

printf("entrez les nombres");
scanf("%d",nombre);


/*somme=

moyenne = somme / nombre; */

while (nombre >= 0)
{
printf(" la moyenne est de %f ",moyenne);

}
if(nombre == -1)
{

5 réponses

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
18 oct. 2007 à 15:19
Il manque un morceau du programme. A priori commence par écrire en pseudo code ce que doit faire le programme et ça deviendra plus clair pour toi je pense :
Lire valeur
Tant que valeur != -1
  Recalculer la moyenne
  Afficher la moyenne
  Lire valeur
Fin tant que

Concrètement il faut que tu fasses attention au calcul de la moyenne. Par exemple quand je dis "recalculer la moyenne" tu ne peux pas mettre :
moyenne = (valeur + ancienne_moyenne)/2

car sinon tu ne calcules pas la moyenne arithmétique. Ainsi il faut simplement stocker la somme des valeurs et diviser par le nombre de valeurs actuellement saisies.
somme = 0
Lire valeur
Pour compteur = 1;valeur != -1;++compteur
  somme += valeur
  Afficher somme / compteur
  Lire valeur
Fin pour

Si valeur est demandé sous forme d'entier et que tu souhaites avoir un résultat décimal de ta moyenne, il faudra multiplier le numérateur par 1.0, ou caster le numérateur en double ou en float (sinon C utilisera la division entière et te retournera la partie entière de la moyenne).

Je te laisse le soin de retranscrire tout ça en C ;-)

Bonne chance
0
Bonjour,
int main(){
 int s=0,n,i=0;
 float moy;
 do{
  scanf("%d",&n);
  if(n>=0){s=s+n;}
  i++;
 }while(n>=0);
 moy=(float)s/(float)i;
 printf("%f", moy);
return 0;
}


j'ai pas testé mais ca doit être bon
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
18 oct. 2007 à 17:44
Moua c'est sans intérêt si tu ne le laisses pas faire son exercice par lui-même, il ne va rien apprendre...

Accessoirement tu ne calcules que la moyenne de l'ensemble des valeurs (or l'énoncé est suffisamment ambigu si c'est bien le cas, ou si comme je l'ai fait il faut donner la moyenne de l'ensemble des valeurs saisies à chaque saisie).
0
en fait le truc c'est que je dois faire des while ou/et des if mais je ne vois pas comment faire?
aidez-moi svp
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tnx
0