Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice 1 tableaux

Anonyme
    16 septembre 2018 à 19:24:01

    Bonjour,

    je me sens bête mais même après avoir relu maintes fois le cours sur les tableaux en C, je ne vois pas comment faire l'exercice 1:

    Créez une fonctionsommeTableauqui renvoie la somme des valeurs contenues dans le tableau (utilisez unreturnpour renvoyer la valeur). Pour vous aider, voici le prototype de la fonction à créer :

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

    (j’espère que le copie/colle a marché ;-))

    Je suis sur que la solution est simple vu que c'est l'exercice 1 (en général c'est le plus simple) mais je vois pas. Si quelqu'un pouvait m'éclairer sur comment faire, ce serait très sympa. Pour l'instant j'ai fait en additionnant chaque valeur une par une, mais sur un tableau de 2000 valeurs, je me vois mal le faire^^

    PS: c'est peut-être un doublon, mais sur les 2100 pages que comporte le forum C, j'en ai parcouru 15 puis j'ai arrêté ^^

    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2018 à 20:05:33

      #include <stdio.h>
      #include <stdlib.h>
      int sommeTableau(int tab[],int tailleTab);
      main()
      {
      int tableau[3]={1,3,5};
      printf("la somme de notre tableau c'est %d",sommeTableau(tableau,3));
      return 0;
      }
      int sommeTableau(int tab[],int tailleTab)
      {
      int i, som =0;
      for(i=0;i<tailleTab;i++)
      som  += tab[i];
      return som;
      }

      -
      Edité par SanaeMachkour 16 septembre 2018 à 21:48:33

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        16 septembre 2018 à 20:09:14

        Merci beaucoup. En effet, la réponse était simple, il suffisait d’y penser
        • Partager sur Facebook
        • Partager sur Twitter
          16 septembre 2018 à 20:30:34

          Salut,

          C'est plutôt une mauvaise idée de donner la solution, il vaut mener le PO à la trouver lui-même. Et c'est encore plus une mauvaise idée quand la solution est mauvaise. La fonction est censée marcher pour des tableaux de n'importe quelle taille, ici ce n'est pas le cas. De plus, main() n'est pas une forme de main valide (int main(void) à la place) et le code est mal indenté (il faudrait aussi utiliser les balises de code).

          • Partager sur Facebook
          • Partager sur Twitter
          Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
            16 septembre 2018 à 21:46:45

            sommeTableau devra parcourir un tableau élément par élément.

            Chaque élément sera ajouté à une valeur initialisé à 0 donc on aura quelque chose de la forme,

            #include <stdio.h>
            
            int sommeTableau(int tableau[], int taille);
            
            int main(void){
            
                /* pour le test de la fonction */
                int array[] = {5, 3, 9};
                int somme = sommeTableau(array, 3);
            
                printf("%d\n", somme);
            
                return 0;
            }
            
            int sommeTableau(int tableau[], int taille){
            
                int s = 0; /* somme initialisée à la valeur 0 */
                int i; /* index du tableau */
                for (...){
                    /* à compléter */
                }
            
                return s;
            }

            Après il faut lire le cours sur les boucles et ça devrait rouler...

            • Partager sur Facebook
            • Partager sur Twitter

            Bonne journée...

              16 septembre 2018 à 22:12:03

              c'est juste une idée simple de la solution, ou un cas particulier  ,tu peux exécuter le code .

              Bref, c'est une idée pas plus.

              De plus main() fonctionne avec ou sans le int , sauf qu'il n y a pas de void à l'intérieur du main.

              Vaut mieux aider que corrigé celui qui a aidé, et si c'était nécessaire ça doit etre plus professionnelle que ça.

              yo@n97one

              -
              Edité par SanaeMachkour 16 septembre 2018 à 22:14:34

              • Partager sur Facebook
              • Partager sur Twitter
                16 septembre 2018 à 23:56:57

                Non, main() n'est pa valide. Ça peut compiler, mais avec avertissement. La norme ne reconnaît que deux formes de main, int main(void) et int main(int argc, char * argv[]).

                Donner des codes avec de mauvaises pratiques n'aide pas le débutant, lui donnen la solution non plus, puisque cela ne le pourre pas à réfléchir et ne l'aide pas à bien comprendre où il bloquait. Et donc je préfère corriger celui qui a aidé pour que le PO ne pense pas que cette solution était bonne (ce qui serait assez embêtant).

                -
                Edité par yo@n97one 16 septembre 2018 à 23:59:32

                • Partager sur Facebook
                • Partager sur Twitter
                Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                  17 septembre 2018 à 20:39:45

                  Salut, s'il te plait tu peut me donner la signification du mot void dans le main (main(void)) .

                  et comment le main comme une fonction à des paramètres (argc , argv) et elle est void ?? et je suis désolé , et j'espère que je ne te dérange pas.

                  yo@n97one

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 septembre 2018 à 21:11:01

                    SanaeMachkour a écrit:

                    Salut, s'il te plait tu peut me donner la signification du mot void dans le main (main(void)) .

                    Ca veut simplement dire que la fonction ne prend pas d'argument, mais tu aurais pu trouver cela tout seul...

                    SanaeMachkour a écrit:

                    et comment le main comme une fonction à des paramètres (argc , argv) et elle est void ??

                    Ces deux solutions sont possibles car elles sont présentées dans la norme comme seules possibilités. Il y a beaucoup de discussions sur ce sujet autant dans ce forum que dans stackoverflow.

                    Par contre en C++, peu importe le void ou pas, d'ailleurs on préférera sans void.

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Bonne journée...

                    exercice 1 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