Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème additions de valeur tableau

Sujet résolu
    19 septembre 2019 à 19:44:50

    Bonsoir, je suis actuellement le cours sur le langage C proposé par le site, et j'ai un problème avec un exercice sur les tableaux.

    Ça consiste à créer un tableau d'un nombre de valeurs choisies (ici 10), de rentrer chacune des valeurs qu'on souhaite additionner entre elles et de renvoyer le résultat sur la console. On doit créer une fonction secondaire appelée sommeTableau qui va faire le calcul.

    le programme se déroule sans accroc, jusqu'au moment où il affiche n'importe quoi en résultat... Pourriez-vous m'aider à comprendre où sont mes erreurs ? mon code : 

    #include<stdio.h>
    
    #include<conio.h>
    
    #include"sommeTbxFncts.h" //header contenant le prototype
    
    int main(int argc, char *argv[])
    
    {
    
    int tab[10] = { 0 }, i = 0, somme = 0;
    
    printf("Entrer 10 chiffres\n");
    
    //On rentre les données
    
    for (i = 0; i < 10; i++)
    
    {
    
    scanf_s("%d", &tab[i]);
    
    }
    
    //affichage somme après calcul
    
    somme = sommeTableau(&tab,10);
    
    printf("%d",somme);
    
    _getch();
    
    return 0;
    
    }



    --------------------------------

    //la fonction secondaire dans un autre fichier
    
    int sommeTableau(int *tableau[], int *tailleTableau)
    
    {
    
    int i = 0,somme = 0;
    
    for (i = 0; i < tailleTableau; i++)
    
    {
    
    somme = somme + tableau[i];
    
    }
    
    return somme;
    
    }



    -
    Edité par AkaiDenkiKurokenshi 19 septembre 2019 à 20:07:15

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2019 à 19:57:52

      1) Utilises le bouton code </> du forum pour poster ton code.

      2) Il faut revoir le prototype de la fonction somme le type des paramètre n'est pas correcte.

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2019 à 20:09:48

        rouloude a écrit:

        1) Utilises le bouton code </> du forum pour poster ton code.

        2) Il faut revoir le prototype de la fonction somme le type des paramètre n'est pas correcte.

        oki fait ;) j'espère que c'est plus clair. Je dois revoir le prototype de sommeTableau c'est bien ca ?

        Edit : Vu qu'on renvoie somme, qui est de type int, le prototype est correct, non ? ou bien comme j'ai plusieurs paramètres, je dois utiliser void ?



        -
        Edité par AkaiDenkiKurokenshi 19 septembre 2019 à 21:36:46

        • Partager sur Facebook
        • Partager sur Twitter
          19 septembre 2019 à 23:55:48

          Salut, 

          Alors tu as ça 

          int sommeTableau(int *tableau[], int *tailleTableau)


          Sache que pour les tableaux tu as deux choix 

          Soit t[] ou bien *t mais pas les deux sinon il me semble que tu as un pointeur sur un pointeur.

          Et pas besoin d initialiser tailleTableau comme etant un pointeur car tu ne cherche pas à modifier la valeur de la taille. Donc travailler sur sa copie ne pose pas de probleme. Mais en soit tu peux faire les deux c'est juste pour la petite remarque.

          Moi j'aurai donc fait :

          int sommeTableau(int tableau[], int *tailleTableau)
          
          ou 
          
          int sommeTableau(int *tableau, int *tailleTableau)
          
          

          Et je ne mettrais pas *tailleTableau en parametre car tu envoies directement 10 pour la taille dans ton appel.

          Tiens moi au courant

          • Partager sur Facebook
          • Partager sur Twitter
          Faites aujourd'hui ce que les autres ne veulent pas faire, pour avoir demain ce qu'eux n'auront jamais !
            20 septembre 2019 à 0:56:19

            Nicolas Rz a écrit:

            Salut, 

            Alors tu as ça 

            int sommeTableau(int *tableau[], int *tailleTableau)


            Sache que pour les tableaux tu as deux choix 

            Soit t[] ou bien *t mais pas les deux sinon il me semble que tu as un pointeur sur un pointeur.

            Et pas besoin d initialiser tailleTableau comme etant un pointeur car tu ne cherche pas à modifier la valeur de la taille. Donc travailler sur sa copie ne pose pas de probleme. Mais en soit tu peux faire les deux c'est juste pour la petite remarque.

            Moi j'aurai donc fait :

            int sommeTableau(int tableau[], int *tailleTableau)
            
            ou 
            
            int sommeTableau(int *tableau, int *tailleTableau)
            
            

            Et je ne mettrais pas *tailleTableau en parametre car tu envoies directement 10 pour la taille dans ton appel.

            Tiens moi au courant

            Super merci ! Je voyais vraiment pas d'où venait l'erreur ! Et puis tu m'as rappelé pour les pointeurs.

            En ce qui concerne le paramètre de taille, je l'ai initialisé pour pouvoir modifier la taille manuellement sans avoir à repasser par les fichiers autres que main.c.

            Je mets en résolu.

            -
            Edité par AkaiDenkiKurokenshi 20 septembre 2019 à 0:58:10

            • Partager sur Facebook
            • Partager sur Twitter
              20 septembre 2019 à 13:52:17

              int sommeTableau(int tableau[], int tailleTableau);
              Aurait été suffisant !
              • Partager sur Facebook
              • Partager sur Twitter
                22 septembre 2019 à 12:12:55

                rouloude a écrit:

                int sommeTableau(int tableau[], int tailleTableau);

                Aurait été suffisant !


                Absolument
                • Partager sur Facebook
                • Partager sur Twitter
                Faites aujourd'hui ce que les autres ne veulent pas faire, pour avoir demain ce qu'eux n'auront jamais !
                  24 septembre 2019 à 16:18:30

                  Nicolas Rz a écrit:

                  rouloude a écrit:

                  int sommeTableau(int tableau[], int tailleTableau);

                  Aurait été suffisant !


                  Absolument

                  D'ailleurs il suffit de copier-coller cela depuis le cours...

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Problème additions de valeur 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