Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice copier un tableau

exercice copier un tableau

    1 mars 2006 à 22:39:49

    salutj'essai de faire l'exercice de M@teo relatif à copier un tableau, mais je réussi à copier que la première valeur.

    je donne mon code C
    #include <stdio.h>
    #include <stdlib.h>
    long copie(long *tableau1,long *tableau2,long taille);
    int main(int argc, char *argv[])
    {
    long tableau1 [4]= {10,20,30,40};
    long tableau2 [4]= {0};
    printf("%ld\n",copie(tableau1,tableau2,4));
    system("PAUSE");
    return 0;
    }
    long copie(long *tableau1,long *tableau2,long taille)
    {
    long i;

    for(i =0; i<taille; i++)
    {
    tableau2 [i] = tableau1 [i];

    }
    return tableau2 [i];
    }


    veuillez m'aider à résoudre ce problème
    zerotamsa
    • Partager sur Facebook
    • Partager sur Twitter
      1 mars 2006 à 22:51:02

      Ce que retourne ta fonction, c'est la valeur de la derniere cellule de ton tableau.
      • Partager sur Facebook
      • Partager sur Twitter
        1 mars 2006 à 23:02:18

        salut,
        mais c'est la valeur 10 qui s'affiche,
        de plus j'ai fait un boucle normalement il doit afficher tout les valeurs!
        zerotamsa
        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2006 à 23:21:07

          Fais donc une fonction void : rien ne peux renvoyer un tableau ; un pointeur constant étant automatiquement assimilé à la première case du tableau, il est accessible depuis partout.
          • Partager sur Facebook
          • Partager sur Twitter
            1 mars 2006 à 23:31:23

            salut,
            toujours le meme erreur, il n'affiche que la valeur 10
            voici le code avec void

            #include <stdio.h>
            #include <stdlib.h>
            void copie(long *tableau1,long *tableau2,long taille);
            int main(int argc, char *argv[])
            {
            long tableau1 [4]= {10,20,30,40};
            long tableau2 [4]= {0};
            copie(tableau1,tableau2,4);
            system("PAUSE");
            return 0;
            }
            void copie(long *tableau1,long *tableau2,long taille)
            {
            long i;

            for(i =0; i<taille; i++)
            {
            tableau2 [i] = tableau1 [i];

            }
            printf("%ld",tableau2 [i] );
            }

            • Partager sur Facebook
            • Partager sur Twitter
              1 mars 2006 à 23:40:14

              Il faut que tu affiches le tableau a partir de main(), ou alors tu affiche chaque case dans la boucle:


              #include <stdio.h>
              #include <stdlib.h>
              void copie(long *tableau1,long *tableau2,long taille);
              int main(int argc, char *argv[])
              {
                 long tableau1 [4]= {10,20,30,40};
                 long tableau2 [4]= {0};
                 copie(tableau1,tableau2,4);
                 /*solution 1:afficher(tableau2,4);*/
                 system("PAUSE");
                 return 0;
              }
              void copie(long *tableau1,long *tableau2,long taille)
              {
                 long i;

                 for(i =0; i<taille; i++)
                 {
                    tableau2 [i] = tableau1 [i];
                    /*solution 2: ou alors tu met le printf("%ld \n",tableau2 [i] ); ici*/

                 }
              /*mauvais:<barre>printf("%ld \n",tableau2 [i] ); </barre>*/
              }
              void afficher(tableau[],taille)
              {
                 long i;
                 for(i = 0; i < taille; i++)
                    printf("case %ld du tableau:%ld \n",i,tableau[i]);
              }
              • Partager sur Facebook
              • Partager sur Twitter
                2 mars 2006 à 19:02:31

                salut,
                merci beaucoup maintenat c'est clair
                • Partager sur Facebook
                • Partager sur Twitter

                exercice copier un 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