Partage
  • Partager sur Facebook
  • Partager sur Twitter

TABLEAUX

Exercices

Sujet résolu
    16 août 2006 à 16:36:52

    Bonjour à tous,

    j'ai un problème, je ne parviens pas à effectuer le PREMIER exercice donné par M@téo dans le tuto "les tableaux" (afficher la somme des valeurs du tableau)

    dans la fonction main je déclare les valeurs du tableau puis je fais appel à la fonction "sommet" (long sommet(long tableau[],long somme)

    comment faire pour effectuer la somme des valeurs dans la fonction sommet?
    pourquoi utiliser un return pour afficher la valeur de cette somme?
    (personnellement j'aurais fait un printf dans la fonction sommet plus simple non?)

    #include<stdlib.h>
    #include<stdio.h>
    #include<math.h>
    #include<time.h>
    long sommet(long tableau[],long somme);
    int main(int argc, char *argv[])
    {
    long tableau[4]={10,15,20,25};
    sommet(tableau[4]);
    getchar();
    return 0;
    }
    long sommet(long tableau[],long somme)
    {
    somme=;//besoin d'aide pour cette manip...
    printf("la somme des valeurs du tableau est %ld\\n",somme);
    return 0;//ou return somme?
    }

    merci du coup de main! :D
    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2006 à 16:37:34

      Pourrais tu mettre les balises code s'il te plait
      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2006 à 16:40:39

        Tu fait un return dans la fonction parceque si tu fait seulement un printf() tu ne peux pas récupérer la valeur de la somme, tu ne peux que l'afficher.
        Sinon pour la somme utilises une boucle.

        Et ce n'est pas la peine d'inclure time.h
        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2006 à 16:46:37

          ...
          ...
          ...
          je ne comprends absolument rien...
          vais me démerder...
          a+ merci quand meme
          • Partager sur Facebook
          • Partager sur Twitter
            16 août 2006 à 17:11:43

            Les balises sont importantes car elles permettent une coloration des mots cle du code ainsi que le respect de l'indentation (presentation du code).
            tout est expliqué dans le mode d'emploi, juste en dessous des smileys.

            En ce qui concerne le TP, tu dois garder à l'esprit l'architecture du code qui permettait d'afficher ces memes valeurs. Le principe est le même, sauf que à la place d'afficher la valeur courante de la case de ton tableau, tu vas l'additionner à la suivante, et renvoyer un résultat au main (ce que ne sait pas faire le type void).
            Sans tout donner, le principe est celui-ci:

            - Tu fais une boucle qui va recuperer les valeurs stockées dans chacune des cases de ton tableau.
            - Tu additionnes la valeur de la case courante avec une variable 'somme' que tu as initialisée à 0 avant le debut de ta boucle.
            - Tant que ton tableau n'a pas été lu entierement, tu passes à la prochaine case de ton tableau, et tu recommences à la premiere etape.
            - Si tu es arrivé au bout de ton tableau (donc à la fin de ta boucle), tu renvoies la valeur 'somme' à ton main (d'où l'utilité du return), et tu l'affiches.
            • Partager sur Facebook
            • Partager sur Twitter
              16 août 2006 à 17:32:56

              ta fonction est de type long
              donc ce n'ai pas return 0; qui signifie que tu renvoie rien
              mais il faut renvoyer return som.
              utilise des mots plus clair
              car tu utilise somme pour designer la taille de ton tableau
              courage
              • Partager sur Facebook
              • Partager sur Twitter
                16 août 2006 à 17:36:18

                MERCI TITOPHE !

                grâce à toi ca s'éclaircit un peu,
                grâce à tes explications j'ai réussi à faire la somme dans la fonction SOMME et à l'afficher...
                Malheureusement je ne sais toujours pas comment l'afficher à partir de la fonction main, je l'ai affichée à partir de la fonction SOMME avant de retourner à la fonction main :
                <code c>
                #include<stdlib.h>
                #include<stdio.h>
                #include<math.h>
                #include<time.h>
                long SOMME(long tableau[],long i);
                int main(int argc, char *argv[])
                {
                long tableau[4],i=0;
                tableau[0]=10;
                tableau[1]=15;
                tableau[2]=22;
                tableau[3]=34;
                SOMME(tableau,4);
                getchar();
                return 0;
                }
                long SOMME(long tableau[],long taille)
                {
                long somme=0,i=0;
                for(i=0;i<taille;i++)
                {
                printf("%ld\\n",tableau[i]);
                somme=somme+tableau[i];
                }
                printf("somme = %ld\\n",somme);
                return somme;
                }
                </code c>
                maintenant que j'ai compris le principe, la moyenne et les autres manipulations sur les valeurs des tableaux sont à ma portée.
                Merci de tes explications, si tu pouvais juste m'apporter encore une petite précision sur la manière d'afficher la somme via le RETURN de la fonction SOMME (à partir du main) ce serait NICKEL!

                BIG THANKS !
                • Partager sur Facebook
                • Partager sur Twitter
                  16 août 2006 à 17:38:33

                  Le message qui suit est une réponse automatique activée par un modérateur.
                  Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
                  Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


                  Merci d'utiliser les balises de code


                  Bonjour,

                  Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
                  Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises &lt;code &gt; et &lt;/code&gt; ?

                  Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

                  Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :

                  Citation

                  int main(int argc, char *argv[])
                  {
                  long choixOperation;

                  printf("Choisissez l'operation a effectuer");
                  /* etc. */
                  }



                  Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :

                  int main(int argc, char *argv[])
                  {
                      long choixOperation;

                      printf("Choisissez l'operation a effectuer");
                      /* etc. */
                  }


                  C'est plus clair n'est-ce pas ? :)
                  N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.

                  Plus d'informations à ce sujet


                  Merci de votre compréhension :)
                  Les modérateurs.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                    16 août 2006 à 17:38:54

                    Merci au passage d'éviter les titres de sujets en majuscules.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                      16 août 2006 à 17:40:46

                      Il faut que tu fasses:

                      printf("Somme: %ld", SOMME(tableau,4));

                      ou:


                      long variable = SOMME(tableau,4);
                      printf("Somme: %ld", variable);

                      Et penses à utiliser les balises de code pour la lisibilité s'il te plait.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 août 2006 à 17:51:57


                        #include<stdlib.h>
                        #include<stdio.h>
                        #include<math.h>


                        long SOMME(long tableau[],long i);
                        int main(int argc, char *argv[])
                        {
                        long tableau[4],i=0;
                        long resultat = 0;
                        tableau[0]=10;
                        tableau[1]=15;
                        tableau[2]=22;
                        tableau[3]=34;

                        resultat = SOMME(tableau,4);

                        printf ("%ld", somme);

                        return 0;
                        }

                        long SOMME(long tableau[],long taille)
                        {
                        long somme=0,i=0;
                        for(i=0;i<taille;i++)
                        {
                        printf("%ld\\\\n",tableau[i]);
                        somme=somme+tableau[i];
                        }

                        return somme;
                        }


                        C'est pas la peine d'inclure time.h ;)

                        Tu crée une variable (que j'ai nommé "resultat") dans le main.
                        Ensuite, tu fait:
                        resultat = SOMME(tableau,4);


                        Ca aura pour effet de stocker dans la variable "resultat" le return de la fonction SOMME.



                        PS : tu peux aussi déclarer les variables du tableau en faisant :
                        long tableau [4] = {10, 15, 22, 34};


                        C'est plus simple de tout écrire sur la même ligne :D

                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 août 2006 à 17:52:16

                          Pour l'explication il y a un post-it intitulé règles de ce forum, vas le lire c'est mieux.
                          Tu encadres ton code avec <code type="c"></code>
                          • Partager sur Facebook
                          • Partager sur Twitter

                          TABLEAUX

                          × 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