Partage
  • Partager sur Facebook
  • Partager sur Twitter

les pointeurs

    29 novembre 2020 à 10:28:31

    #include <stdio.h>
    #include <stdlib.h>
    #include "test20.h"
    int main()
    {
        int tableau[4],somme,tailleTableau=4,i;
        double moyenne;
        tableau[0]=1;
        tableau[1]=2;
        tableau[2]=3;
        tableau[3]=4;
        for(i=0;i<4;i++)
        {
            printf("%d\n",tableau[i]);
        }
        somme=sommeTableau(tableau,4);
        moyenne=moyenneTableau(tableau,4);
        printf("la somme du tableau est : %d\n",somme);
        printf("la moyenne du tableau est : %f\n",moyenne);
        return 0;
    }
    int sommeTableau(int tableau[], int tailleTableau)
    {   int somme;
        somme=0;
        int i ;
        for(i=0;i<4;i++)
        {
            somme=somme+tableau[i];
        }
        return somme;
    }
    double moyenneTableau(int tableau[], int tailleTableau)
    {   double moyenne;
        int i,somme;
        somme=sommeTableau(tableau,4);
        for(i=0;i<4;i++)
        {
            moyenne=(somme/tailleTableau);
        }
        return moyenne;
    }
    

    la moyenne est afficher 2 or la somme=10 et la taille du Tableau = 4 ??

    -
    Edité par HAROUNKENZA 30 novembre 2020 à 16:03:26

    • Partager sur Facebook
    • Partager sur Twitter
      29 novembre 2020 à 10:29:49

      Utilises le bouton code </> du forum pour poster ton code ! (tu peux modifier ton post, lien modifier en haut à droite du post).

      -
      Edité par rouloude 29 novembre 2020 à 10:40:00

      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2020 à 10:36:34

        rouloude a écrit:

        Utilises le bouton code </> du forum pour poster ton code ! (tu peux modifier ton post, lien modifier en haut à droite du post).


        merci ;) !

        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2020 à 10:40:05

          Il y a de nombreuses erreurs dans ton code !
          L'exercice ne demande pas d'utiliser les pointeurs !
          Tu devrais donc le refaire sans les pointeurs.
          • Partager sur Facebook
          • Partager sur Twitter
            29 novembre 2020 à 13:58:29

            Bonjour,

            Il semble que que n'as pas du tout compris comment fonctionnaient les pointeurs.

            Commençons par la fonction sommeTableau(), tu as besoin d'une variable somme qui doit être d'abord initialisée à zéro, puis accumulera les valeurs pour finir comme résultat de la fonction. Il faut lever ces étoiles qui trainent dans ta fonction.

            Revenons à main(). Cette fonction veut retrouver la somme et la moyenne d'un tableau. pour cela il n'y a pas d'autre moyens que d'appeler les 2 fonctions, en récupérer les résultats dans deux variables que tu appelles somme et moyenne. Puis en afficher les valeurs. Là aussi il faut lever les étoiles.

            On dirait que tu as utilisé les étoiles comme une propriété "magique" des noms de variables qui permet d'accéder à des variables qui sont ailleurs. Ça n'est pas du tout ça les pointeurs.

            Quant à la fonction moyenneTableau(), elle aussi ne peut pas utiliser la "magie" de la variable *somme. Il te faut appeler la fonction sommeTableau() pour en récupérer le résultat mis dans somme. Et là aussi il faut lever les étoiles.

            • Partager sur Facebook
            • Partager sur Twitter

            En recherche d'emploi.

              30 novembre 2020 à 15:47:09

              mrc pour le conseil je vai reessayer ... 

              • Partager sur Facebook
              • Partager sur Twitter
                30 novembre 2020 à 23:31:15

                Ne modifie pas ton premier post, il faut penser aux autres. Le thread devient illisible.

                Ta fonction moyenne effectue 4 fois le même calcul. Une seule suffit.
                Pourquoi tu trouves 2, parce que 10/4 ça fait 2. La règle en C est qu'une opération entre 2 entiers retourne un résultat entier! Il existe une autre règle : une opération entre 2 nombres se fait sur le type le plus élaboré, il suffit donc de transformer au moins un des 2 en double.

                    moyenne = (double)somme / tailleTableau;
                • Partager sur Facebook
                • Partager sur Twitter

                En recherche d'emploi.

                les pointeurs

                × 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