Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mon code ne m'affiche po se que je veux

-_-''

    29 avril 2006 à 21:14:37

    J'ai ce code là.
    #include <stdio.h>
    #include <stdlib.h>

    long sommeTableau(long tableau[], long tailleTableau, long somme);

    int main(int argc, char *argv[])
    { 
      long tableau[2] = {2,2}, somme;
      sommeTableau(tableau, 2, somme);
      printf("C'est %ld.\n\n", somme);
      system("PAUSE");     
      return 0;
    }
    long sommeTableau(long tableau[], long tailleTableau, long somme)
    {
         somme = tableau[0] + tableau[1];
         return somme;
    }

    Le problème est que la console m'affiche un chiffre du genre 2 millions et quelques.
    Je suppose qu'elle a additionné les adresses....
    C'est sûrement tout bête . Mais j'aimerai que qqun me mette sur la bonne voie :D


    • Partager sur Facebook
    • Partager sur Twitter
      29 avril 2006 à 21:17:04

      Salut, sa ne serais pas plustot:

      somme = sommeTableau(tableau, 2, somme);

      ?
      • Partager sur Facebook
      • Partager sur Twitter
        29 avril 2006 à 21:19:59

        Oui ça marche mais je ne comprends po pourquoi l'autre ne fonctionne pas...
        Pourrais-je avoir quelques explications?
        Merci au fait ;)
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          29 avril 2006 à 21:23:35

          Car; quand tu passe un argument a une fonction, ce n'est q'une copie qui est envoyée , tu peux donc le modifier comme tu veux dans la fonction, il restera le meme dans le main, vu que tu n'en modifiera que la copie...
          • Partager sur Facebook
          • Partager sur Twitter
            29 avril 2006 à 21:26:08

            Oui merci tiens je vais transformer somme en pointeur ça devrait marcher là non?
            • Partager sur Facebook
            • Partager sur Twitter
              29 avril 2006 à 22:16:05

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

              void copie(long tableauOriginal[], long tableauCopie[], long tailleTableau);

              int main(int argc, char *argv[])
              { 
                long tableauOriginal[2] = {2,2}, tableauCopie[2] = {3,3};
                tableauOriginal = copie(tableauOriginal, tableauCopie, 2);
                printf("Voici le tableau copie %ld", tableauOriginal[1];
                system("PAUSE");     
                return 0;
              }
              void copie(long tableauOriginal[], long tableauCopie[], long tailleTableau)
              {
                   tableauOriginal = tableauCopie;
              }

              Et là what's the problem?
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                29 avril 2006 à 22:18:11

                Tu a oublié la fin de la parenthèse après le printf
                • Partager sur Facebook
                • Partager sur Twitter
                  29 avril 2006 à 22:19:46

                  tu ne peut pas copier un tableau comme sa, il faut copier case par case;


                  void copie(long tableauOriginal[], long tableauCopie[], long tailleTableau)
                  {
                       int i=0;
                       for(i=0;i<tailleTableau;i++)
                       {   
                           tableauCopie[i] = tableauOriginal[i];
                       }

                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 avril 2006 à 22:22:53

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

                    void copie(long tableauOriginal[], long tableauCopie[], long tailleTableau);

                    int main(int argc, char *argv[])
                    { 
                      long tableauOriginal[2] = {2,2}, tableauCopie[2] = {3,3};
                      tableauOriginal = copie(tableauOriginal, tableauCopie, 2);//L'erreur serait là
                      printf("Voici le tableau copie %ld", tableauOriginal[1]);
                      system("PAUSE");     
                      return 0;
                    }
                    void copie(long tableauOriginal[], long tableauCopie[], long tailleTableau)
                    {
                         tableauOriginal = tableauCopie;
                    }
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 avril 2006 à 22:23:03

                      Et t'as fonction n'est pas bonne ;)

                      Litteralement elle signifie :
                      "Les valeurs de tableauOriginal prendront celle de tableauCopie" or, c'est le contraire que tu veux faire, ;) Donc inverse deux ;)

                      Ensuite tu dois changer chaque valeurs du tableau, donc créé une variable i que tu va faire boucler pr chaque case de ton tableau ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 avril 2006 à 22:26:03

                        Raaa bah ui merci bcp à vous ;-) je pensais pouvoir le faire directement et non pas case par case
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Mon code ne m'affiche po se que je veux

                        × 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