Partage
  • Partager sur Facebook
  • Partager sur Twitter

La moyenne des éléments d'un tableau

Sujet résolu
    19 août 2017 à 21:05:06

    Bonjour,

    débutant en C j'essaie de faire l'exercice qui consiste à calculer la moyenne des éléments d'un tableau, le problème est que mon code me donne toujours 5.0000, valeur qui n'a aucun rapport avec ce que je fais, je ne vois donc pas l'erreur si quelqu'un pourrait m'aider voilà mon code, merci

    #include <stdio.h>
    #include <stdlib.h>
    
    double moyenneTableau ( int tableau [], int tailleTableau );
    
    int main()
    {
        double M=0;
        int tableau[3]={4,6,6};
       M=moyenneTableau(tableau,3);
        printf("%f",M);
    
    }
    
    int sommeTableau (int tableau [], int tailleTableau );
    
    double moyenneTableau ( int tableau [], int tailleTableau )
    {
        double moyenne=0,i;
        for(i=0;i<tailleTableau;i++)
        {
            moyenne=sommeTableau(tableau,tailleTableau)/tailleTableau;
        }
        return moyenne;
    }
    
    
    
    int sommeTableau (int tableau [], int tailleTableau )
    {
    int i,S=0;
    for(i=0;i<tailleTableau;i++)
    {
        S=S+tableau[i];
    }
    return S ;
    }



    -
    Edité par Ismaïl 19 août 2017 à 22:07:59

    • Partager sur Facebook
    • Partager sur Twitter
      19 août 2017 à 22:03:16

      Utilise les balises code pour poster ton code.

      Concernant ton programme, je ne l'ai pas étudié en détail, mais tu as une drôle de façon de calculer la moyenne. Je ne voudrais pas te gâcher le plaisir de corriger ça toi-même.

      • Partager sur Facebook
      • Partager sur Twitter
        19 août 2017 à 22:32:51

        J'ai modifié ma fonction moyenne mais ça me donne toujours 5.0000, là voici

        double moyenneTableau ( int tableau [], int tailleTableau )
        {
            double moyenne=0;
            moyenne= sommeTableau(tableau,tailleTableau)/tailleTableau;
            return moyenne;
        }
        



        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2017 à 2:12:36

          Il faut que tu comprennes comment fonctionne cette affectation: 

          moyenne= sommeTableau(tableau,tailleTableau)/tailleTableau;

          L'expression située à droite du signe = est évaluée: la fonction sommeTableau renvoie un entier, taille tableau est un entier, donc leur division sera une DIVISION ENTIERE. Or 4 + 6 + 6 = 16 et 16 / 3 ça fait 5 avec des entiers.

          Ce n'est qu'ensuite que le résultat de l'expression, donc 5, est affecté à la variable moyenne qui vaut donc 5.0000

          Il te faut donc effectuer une division "réelle". Pour cela, un des 2 termes de la division doit être un réel (un double dans ton cas). Tu peux soit (ou les 2):

          - faire en sorte que sommetableau renvoie un double.

          - convertir (caster) le temps du calcul taille tableau en double comme ceci: 

          moyenne= sommeTableau(tableau,tailleTableau)/(double)tailleTableau;

          -
          Edité par zoup 20 août 2017 à 2:13:50

          • Partager sur Facebook
          • Partager sur Twitter
            21 août 2017 à 22:05:14

            D'accord je vois, merci énormément pour tes explications.
            • Partager sur Facebook
            • Partager sur Twitter

            La moyenne des éléments d'un tableau

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown