Exercice en c moyenne

bill -  
 saro -
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)
{
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  2. Moua
     
    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
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  4. bill
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question