Partage
  • Partager sur Facebook
  • Partager sur Twitter

Error: too few arguments to function

Sujet résolu
    23 février 2021 à 14:43:39

    Bonjour / Bonsoir

    Je viens de débuter la programmation avec C, j'essaye de faire un exercice banal d'un programme qui calcule la somme des valeurs d'un tableau mais je me retrouve avec un problème ou plusieurs: Error: too few arguments to function 'SommeTableau'. Je sais que c'est un problème de nombre de paramètre mais j'arrive pas à trouver mon erreur. Votre aide serait précieuse.

    #include <stdio.h>
    #include <stdlib.h>
    
    int SommeTableau(int tableau[],int taille);
    int main()
    {
        printf("La somme des valeurs du tableau est: %d\n",SommeTableau());
        return 0;
    }
    int SommeTableau(int tableau[],int taille)
    {
       int somme=0,i;
       printf("Veuillez inserer les données du tableau:\n");
       printf("C'est un tableau de combien de colonnes?\n");
       scanf("%d",&taille);
       printf("Entrer la valeur de la première colonne\n");
       scanf("%d",&tableau[0]);
       printf("Entrer la valeur de la deuxieme colonne\n");
       scanf("%d",&tableau[1]);
       printf("Entrer la valeur de la troisieme colonne\n");
       scanf("%d",&tableau[2]);
       printf("Entrer la valeur de la quatrieme colone\n");
       scanf("%d",&tableau[3]);
       printf("Entrer la valeur de la cinquieme colone\n");
       scanf("%d",&tableau[4]);
       for(i=0;i<taille;i++)
       {
           somme=somme+tableau[i];
       }
       return somme;
    }


    -
    Edité par Lino_undercover 23 février 2021 à 15:29:17

    • Partager sur Facebook
    • Partager sur Twitter
      23 février 2021 à 15:18:33

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        23 février 2021 à 15:29:37

        Bonjour, tu n'envoies rien à ta fonction sommeTableau() alors qu'elle attend un pointeur sur int et un entier, d'où l'erreur
        • Partager sur Facebook
        • Partager sur Twitter
          23 février 2021 à 15:42:04

          Merci mon probleme c'était le pointeur en fait. J'ai crée le tableau et sa taille dans main et j'ai ajouté ces paramètres à l'appel de la fonction sommetableau. C'est venu mais ça ne fait pas ce que je voulais... Je vais encore m'y mettre. Merci

          #include <stdio.h>
          #include <stdlib.h>
          
          int SommeTableau(int tableau[],int taille);
          int main()
          {
              int taille,tableau[taille];
              printf("La somme des valeurs du tableau est: %d\n",SommeTableau(*tableau,taille));
              return 0;
          }
          int SommeTableau(int tableau[],int taille)
          {
             int somme=0,i;
             printf("Veuillez inserer les données du tableau:\n");
             printf("C'est un tableau de combien de colonnes?\n");
             scanf("%d",&taille);
             printf("Entrer la valeur de la première colonne\n");
             scanf("%d",&tableau[0]);
             printf("Entrer la valeur de la deuxieme colonne\n");
             scanf("%d",&tableau[1]);
             printf("Entrer la valeur de la troisieme colonne\n");
             scanf("%d",&tableau[2]);
             printf("Entrer la valeur de la quatrieme colone\n");
             scanf("%d",&tableau[3]);
             printf("Entrer la valeur de la cinquieme colone\n");
             scanf("%d",&tableau[4]);
             for(i=0;i<taille;i++)
             {
                 somme=somme+tableau[i];
             }
             return somme;
          }
          



          • Partager sur Facebook
          • Partager sur Twitter
            23 février 2021 à 16:02:10

            Il y a une autre erreur, qui concerne le découpage.

            Quand on demande de faire une fonction qui RETOURNE LA SOMME d'un tableau, cette fonction ne doit s'occuper de la SAISIE du tableau. Ni afficher le résultat. C'est pas ses oignons.

            C'est important de faire des fonctions qui s'occupe de faire UNE chose.

            -
            Edité par michelbillaud 23 février 2021 à 16:02:59

            • Partager sur Facebook
            • Partager sur Twitter
              23 février 2021 à 16:10:25

              Et puis tu n'initialises pas la taille du tableau, ça peut poser problème
              • Partager sur Facebook
              • Partager sur Twitter
                23 février 2021 à 16:54:10

                Et ça n'est pas *tableau qu'il faut passer à la fonction c'est tableau. Le premier désigne la premier élément du tableau, le second c'est le nom du tableau qui est équivalent à un pointeur sur le premier élément. Et attention, ton code utilise ce que l'on appelle un VLA, il est toujours préférable de créer un tableau dont la taille est une constante de compilation
                #define TAILLE_AMX  100
                int  main(void) {
                    int  tableau[TAILLE_MAX];
                    ......
                    int taille_reelle = .....
                    ......
                    printf( "La somme des valeurs du tableau est: %d\n", SommeTableau( tableau, taille_reelle ) );
                }

                Et entre la ligne 3 et la ligne 7 tu mets le code pour remplir ton tableau.

                -
                Edité par Dalfab 23 février 2021 à 16:56:50

                • Partager sur Facebook
                • Partager sur Twitter
                Bjarne Stroustrup : "C++ has become too expert friendly"

                Error: too few arguments to function

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                • Editeur
                • Markdown