Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice tableau

    30 janvier 2019 à 21:18:54

    Bonjour,

    je suis en train de faire l'exercice du tableau et jai un problème avec ma somme, quoique je fasse elle me renvoie 3840.

    Qqn peut me dire ou est la faute?

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int sommeTableau(int tableau[], int tailleTableau);
    
    int main(int argc, char *argv[])
    {
        int tableau[4] = {1,2,3,4};
        
        sommeTableau(tableau,4);
       
        printf ("la somme vaut %d\n", sommeTableau);
        return 0;
        
    }
    int sommeTableau(int tableau[], int tailleTableau)
    {
    
        int i = 0;
        int somme = 0;
        
        for (i=0; i< tailleTableau; i++);
        {
            somme += tableau[i];
        }
        return somme;
        
    }



    • Partager sur Facebook
    • Partager sur Twitter
      30 janvier 2019 à 22:07:07

      Hello,

      1) À la manière dont tu l'écris, le printf() va afficher l'adresse  de la fonction sommeTableau (je te laisse rechercher quelle est la bonne écriture)

      2) Et de toute façon, sommeTableau() ne renverra pas la bonne valeur: il y a un ; en trop à la fin du for(): la valeur renvoyée sera donc celle de tableau[tailleTableau].... qui n'existe pas ;)

      -
      Edité par edgarjacobs 30 janvier 2019 à 22:12:38

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        30 janvier 2019 à 22:07:35

        Il faut récupérer la valeur de retour de la fonction sommeTableau.

        Là ligne 13 tu passes à ta fonction print le nom de la fonction sommeTableau, et pas son résultat.

        • Partager sur Facebook
        • Partager sur Twitter

        Blond, bouclé, toujours le sourire aux lèvres...

          30 janvier 2019 à 22:58:03

          je vois qu'il faut donc que je fasse un pointeur depuis ma fonction sommeTableau pour pouvoir le récupérer mais je ne vois pas comment faire.

          cependant je peux aussi intégrer directement la fonction dans mon printf qui le récupère directement et ça fonctionne

          #include <stdio.h>
          #include <stdlib.h>
          #include <math.h>
          
          int sommeTableau(int tableau[], int tailleTableau);
          
          int main(int argc, char *argv[])
          {
              int tableau[4] = {1,2,3,4};
              
              printf ("la somme vaut %d\n", sommeTableau(tableau,4));
              return 0;
              
          }
          int sommeTableau(int tableau[], int tailleTableau)
          {
              
              int i = 0;
              int somme = 0;
              
              for (i=0; i< tailleTableau; i++)
              {
                  somme += tableau[i];
              }
              return somme;
              
          }

           mais je ne comprend pas exactement comment cela fonctionne

          • Partager sur Facebook
          • Partager sur Twitter
            30 janvier 2019 à 23:38:19

            Re,-

            El.Jouffo a écrit:

            je vois qu'il faut donc que je fasse un pointeur depuis ma fonction sommeTableau 

            C'est quoi un pointeur depuis ta fonction sommeTableau ? Connais-tu déjà les pointeurs en C ? Et quand bien même, les pointeurs n'ont pas leur place ici.

            El.Jouffo a écrit:

             mais je ne comprend pas exactement comment cela fonctionne

            Tu peux le voir de la manière suivante: sommeTableau(tableau,4) (ligne 11) est remplacé par la valeur spécifiée dans le return qqchose; dans ton cas, qqchose est somme (ligne 25)



            -
            Edité par edgarjacobs 30 janvier 2019 à 23:39:00

            • Partager sur Facebook
            • Partager sur Twitter

            On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

              31 janvier 2019 à 10:41:44

              El.Jouffo a écrit:


                  
                  printf ("la somme vaut %d\n", sommeTableau(tableau,4));
              

               mais je ne comprend pas exactement comment cela fonctionne

              Et bien sommeTableau(tableau,4) est une expression. Cette expression est évaluée (calculée), et le résultat est passé en second argument de printf.
              C'est comme si on écrit printf("%d", 1+2), le résultat de l'expression 1+2 est calculé, puis passé en second argument de printf.
              Bien sur, l'évaluation de sommeTableau(tableau,4)  est un peu plus compliqué que celle de 1+2, puisqu'il faut éxécuter la fonction sommeTableau pour obtenir le résultat.

              Il n'y a pas de différence conceptuelle avec ceci:

              int a = 1 + 2;
              int b = sommeTableau(tableau, 4);

              dans les deux cas il faut évaluer une expression pour obtenir une valeur, puis affecter la valeur.

              • Partager sur Facebook
              • Partager sur Twitter
                31 janvier 2019 à 22:17:55

                Coucou tout le monde, j'ai un soucis avec mon code et je n'arrive pas le compiler. L'erreur se situe au niveau de main

                votre aide me sera très utile. Merci d'avance.

                #include<stdio.h>
                #include<conio.h>
                #include"Tableaux.h"
                int main()
                {
                    int tableau[4]={10,15,3};
                    sommeTableau(tableau,4);
                    return 0;
                }
                    int sommeTableau(int tableau[],int tailleTableau)
                    {
                        int i=0,s;
                    for(i=0;i<tailleTableau;i++)
                    {
                            s=tableau[i]+tableau[i+1];
                            
                            return s;

                        }


                }

                • Partager sur Facebook
                • Partager sur Twitter
                  31 janvier 2019 à 23:43:58

                  MounaDiarra a écrit:

                  L'erreur se situe au niveau de main

                  J'imagine que le message du compilateur était un peu plus précis que ça ?

                  EDIT : Mais tu n'es pas l'OP ? Tu devrais créer ton propre sujet. Et utiliser les balises code, et poster le message d'erreur complet.

                  -
                  Edité par LoupSolitaire 31 janvier 2019 à 23:45:06

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Blond, bouclé, toujours le sourire aux lèvres...

                    1 février 2019 à 3:31:48

                    Alors déjà je ne suis pas très avancée du coups il y'a certains vocabulaires que je ne maitrise pas comme l'OP et les balises codes. Si vous pouviez être un peu plus explicite

                    -
                    Edité par Belleâme 1 février 2019 à 3:41:51

                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 février 2019 à 15:30:30

                      Les balises code permettent de présenter le code de manière lisible, ça se fait avec le bouton </>, l'avant dernier de la liste au dessus de la zone pour écrire ses posts.

                      L'OP c'est celui qui a créé le sujet sur le forum, en général quand on a un problème on crée son propre sujet.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Blond, bouclé, toujours le sourire aux lèvres...

                        9 avril 2019 à 21:06:06

                        Bonsoir et merci pour tout

                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 avril 2019 à 1:26:15



                           Hello,

                          int sommeTableau( int tableau[] , int tailleTableau )
                          {
                              int somme = 0;
                              for( size_t i=0 ; i<tailleTableau ; i++ ) //Les indices d'un tableau sont des entiers positifs ! Une variable int est un entier signé. Ca n'a pas tellement de sens.
                              {
                                      sum += tableau[i]; // qui est la factorisation de sum = sum + tableau[i]
                              }
                              return somme; // Il faut retourner somme à la fin de la boucle for sinon ta fonction s'arrête à la première itération.
                          }
                          
                          int main()
                          {
                              int tableau[4]={10,15,3,12}; //Ce n'est pas un tableau de caracères, il n'y a pas de caractère de fin contrôle \0 pour les tableaux d'entiers. 
                              int somme = sommeTableau(tableau,4); //Il faut récupérer le resultat de la fonction somme dans une variable pour connaitre le résultat.
                              return 0;
                          }
                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 avril 2019 à 2:07:46

                            l erreur c est au printf  comme tu afficher une variable qui n existe pas . soit tu nomme b=somme(tableau,4) et tu affiche b soit tu affiches directement somme(tableau,4) et non tableau
                            • Partager sur Facebook
                            • Partager sur Twitter

                            exercice 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