Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec les tableaux

...

Sujet résolu
    13 mai 2006 à 22:30:37

    Bonjour a tous
    G un petit problème avec les tableaux
    voila ce que je frappe:

    (ps ce code est en c++ mais même si vous avez la reponse en c c' est bon je me debroullerais)

    #<include <cstdlib>
    #include <iostream.h>

    long sommeTableau(long *tableau, long tailleTableau);

    int main (void)
    {
       
        long tableau[4] = {5, 8, 12}, i = 0;
       
        long tailleTableau=4;
       
        long sommeTableau(*tableau,tailleTableau);
       
        cout<<sommeTableau;
       
        char v;
        cin>>v;
    }

    long sommeTableau(long *tableau,long tailleTableau)
    {
        long i;
        for (i = 0 ; i < tailleTableau ; i++)
        {
            cout<<tableau[i];
        }
    }




    Ce programme doit servir a aditionner les nombres du tableau.
    J'ai essayais de plusieurs manières en vain

    Pouvez vous m'aidez?
    Merci
    ce site est génial^^
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2006 à 22:38:28

      Je ne connais pas le C++ mais ce code devrait marcher ( non testé ) ! :)

      #include <cstdlib>
      #include <iostream.h>

      long sommeTableau(long *tableau, long tailleTableau);

      int main (void)
      {
          long tableau[4] = {5, 8, 12};
          sommeTableau(tableau,4);
      }

      long sommeTableau(long *tableau,long tailleTableau)
      {
          long i, total = tableau[0];
          for (i = 0 ; i < tailleTableau ; i++)
              {
               total = total + tableau[i];
              }
           cout >> total;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2006 à 22:43:01

        C déjà mieux la au moins il se compile
        merci
        le problème c'est qu'il affiche 301
        ^^
        je V cherchez pourquoi
        si vous trouvez n'hésitez pas
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2006 à 22:47:50

          Pourquoi tu fais les exercices C en C++ ?
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2006 à 22:50:01

            j'avais déjà commencé le c++ avant de tomber sur ce site
            Il n'y a pas grand chose qui change pour le moment
            Seules les fonctions printf et scanf ont une syntaxe totalement différente

            • Partager sur Facebook
            • Partager sur Twitter
              13 mai 2006 à 23:09:56

              J'aurais plutot dit (pas testé non plus):
              #include <cstdlib>
              #include <iostream.h>

              long sommeTableau(long *tableau, long tailleTableau);

              int main (void)
              {
                  long tableau[3] = {5, 8, 12};
                  sommeTableau(tableau,3);
              }

              long sommeTableau(long *tableau,long tailleTableau)
              {
                  long i, total = 0;
                  for (i = 0 ; i < tailleTableau ; i++)
                      {
                       total = total + tableau[i];
                      }
                   cout >> total;
              }

              Pas testé, apparament chez moi cout>> marche pas (j'ai bien précisé C++ comme langage, m'enfin pas envie de chercher qu'est ce qui bug). J'ai remplacé par un bon vieux printf("%i",total);getchar(); et j'ai obtenu le bon résultat :euh:
              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2006 à 23:15:44

                Merci beaucoup!
                Sa marche
                en fait cout s'utilise comme ceci:
                cout<<variable;

                c'est donc pour sa que ton compilateur planté
                a titre indicatif:
                scanf =>cin
                cin>>variable;
                ^^
                encore merci
                • Partager sur Facebook
                • Partager sur Twitter
                  13 mai 2006 à 23:27:43

                  Citation : YellowMan

                  long tableau[4] = {5, 8, 12};

                  Attention aux initialisations de variable !!!

                  "long tableau[4]={5,8,12};"
                  Est un raccourci pour:

                  long tableau[4];
                  tableau[0]=5;
                  tableau[1]=8;
                  tableau[2]=12;


                  Mais et tableau[3]?
                  Il a une valeur non initialisée (une valeur d'un autres programme par exemple ).

                  Pour initialiser ton tableau, tu fais soit:

                  long tableau[4]={5,8,12,0};

                  Soit

                  long tableau[4)={0}; // mets toutes les cases du tableau a zero
                  tableau[0]=5;
                  tableau[1]=8;
                  tableau[2]=12;


                  +!NiCo!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 mai 2006 à 23:42:49

                    C'est ce que je pensais car la dernière valeur du tableau est donc aléatoire ce qui aurait expliqué le résultat bizarre. Pourtant d'après le cours:

                    Citation : Cours sur les tableaux

                    long tableau[4] = {10, 23}; // Valeur insérées : 10, 23, 0, 0


                    La case n°0 prendra la valeur 10, la n°1 prendra 23, et toutes les autres prendront la valeur 0 (par défaut).



                    Mais ce n'est peut être pas valable C++ ??
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 mai 2006 à 23:46:09

                      Si tu veux un conseil, initialise d'abord tous tes tableaux avec {0} puis rajoute ensuite les valeurs particulieres pour etre sur ;)
                      +!NiCo!
                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 mai 2006 à 0:06:06

                        pour que cout marche il faut mettre

                        using namespace std;
                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 mai 2006 à 0:07:39

                          Ou alors tu precise avec std::cout mais je crois que namespace std est plus pratique ^^
                          + !NiCo!
                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 mai 2006 à 18:28:21

                            Juste comme ça ,c'est quoi std::cout ??

                            J'ai maintenant un autre problème:
                            (difficile les tableaux :lol: )
                            J'assaye de réaliser le programme qui calcule la moyenne des variables du tableau
                            voici ce que j'ai:


                            #include <cstdlib>
                            #include <iostream.h>

                            long moyenneTableau(long *total,long tailleTableau);

                            int main(void)
                            {
                                long tableau[4] = {5, 10, 0};
                                long total;
                                long moyenne;
                                moyenneTableau(total,4);
                               
                                cout<<moyenneTableau;
                               
                               
                                system("PAUSE");
                                return EXIT_SUCCESS;
                            }

                            long moyenneTableau(long *total,long *moyenne,long tailleTableau)
                            {
                                long i;
                                long total = 0;
                                long moyenne=0;
                                for (i = 0 ; i < tailleTableau ; i++)
                                    {
                                     total = (total + tableau[i])/i;
                                    }
                                 cout<< total<<"\n";
                                 
                                 moyenne=total/i;
                                 cout<<moyenne<<"\n";
                            }


                            J'ai environ 7 erreurs

                            Si quelqu'un sait ou est le(s) problème(s)
                            Merci d'avance!
                            • Partager sur Facebook
                            • Partager sur Twitter
                              18 mai 2006 à 19:36:56

                              Sa signifie que tu 'dit' au compilateur d'aller chercher dans l'espace de nom std (pour standard) l'objet cout qui sert a afficher du texte.

                              Pour ton problème :
                              - Le prototype de la fonction moyenneTableau() et sa definition sont differente (Il manque un paramètre dans le prototype)
                              - Tu ne retourne rien dans ta fonction alors qu'elle doit retourner un long (Tu dois a mon avis retourner moyenne)
                              - Lors de l'appel a cette fonction, tu oublie l'opérateur '&' devant total
                              - Tu oublie de passer en paramètre le tableau lui-même (Sinon, comment faire une moyenne :-° )
                              - A cette ligne :
                              total = (total + tableau[i])/i;

                              Tu omet que tu as defini total comme un pointeur, et donc pour modifier sa valeur tu dois faire *total
                              - La variable moyenneTableau n'existe pas, c'est une fonction.
                              - Je pense que c'est tout :)

                              Voilà le code corriger (et améliorer ; on a les références en C++):
                              #include <iostream>

                              long moyenneTableau(long & total,long tableau[],long tailleTableau);

                              using namespace std;

                              int main(void)
                              {
                                  long tableau[4] = {5, 10, 0};
                                  long total = 0, moyenne = 0;
                                  moyenne = moyenneTableau(total,tableau,4);
                                 
                                      cout << moyenne << endl <<
                                                      "Appuyer sur un touche pour continuer..." << endl;
                                      getchar();
                                  return 0;
                              }

                              long moyenneTableau(long & total,long tableau[],long tailleTableau)
                              {
                                      for (long i = 0 ; i < tailleTableau ; i++)
                                      {
                                              total += tableau[i];
                                      }
                                      // cout << total << endl;
                                 
                                      return total / i;
                              }
                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 mai 2006 à 17:46:00

                                Merci !
                                Effectivement cela faisait un peu beaucoup d'erreurs.
                                et merci aussi pour les indications en c++!
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Problème avec les 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