Les Tableaux en C

Bonjour, tout le monde

j'ai créé 2 tableaux t1 et t2 de taille N de type numérique en langage C
qui peut m'aider d'ecrire un code qui permet de ranger le contenu des deux tableaux t1 et t2 en un seul tableau t3
merci d'avance ^^)) !

12 réponses

  1. Contributeur
    Oui, désolé, pas eu le temps tout à l'heure.
    Le C++ permet certaines souplesse dans la déclaration des tableaux, mais il faut tout de même qu'en entrant dans le corps de la fonction on connaisse déjà sa taille. Si tu veux faire un tableau de taille variable, il faut passer par des pointeurs (donc new).
    int n,x,i,t[i],a[i],b[i];
    te déclare des tableaux de taille "i", mais comme "i" n'a pas de valeur particulière, tu ne connais pas la taille de tes tableaux.
    0
    1. j'ai demandé seulement de le corriger ou bien donner un autre exemple complet c tout !!
      merci d'avance
      0
      1. tu peut me dire pourquoi?
        0
        1. Contributeur
          Aie ! en effet, c'est pas bon ça !
          Le compilateur est déjà bien gentil de ne pas te virer.
          0
          1. je pense que j'ai commis des fautes dans la déclaration....
            vous pouvez me donnez une déclaration correcte
            oui je travaille en c++ voila le programe que j'ai ecrit ,le probleme que la compilation s's terminé sans erreur mais lors de l'execution il apparait un message d'erreur meme que les autre projets que j'etait créé s'exécute normalement et sans probleme!!
            voilà le code:

            #include<stdio.h>
            #include<conio.h>
            main()
            {
            int n,x,i,t[i],a[i],b[i];
            printf("remplissage du 1er tableau t \n");
            printf("entrer le nombres des colones \t");
            scanf("%d",&n);
            for(i=0;i<=n;i++)
            {
            printf("taper la valeur %d \t",i);
            scanf("%d",&t[i]);
            }
            printf("affichage de tableau \n");
            for(i=0;i<=n;i++)
            {
            printf("%d \n",t[i]);
            }
            printf("remplissage du 2eme tableau a \n");
            printf("entrer le nombres des colones \t");
            scanf("%d",&x);
            for(i=0;i<=x;i++)
            {
            printf("taper la valeur %d \t",i);
            scanf("%d",&a[i]);
            }
            printf("affichage de tableau \n");
            for(i=0;i<=x;i++)
            {
            printf("%d \n",a[i]);
            }
            printf("loperation de ranger le contenue des 2 tableux dans le 3 eme tableau \n");
            for(i=0;i<=n;i++)
            {
            b[i]=t[i];
            }
            for(i=n;i<=(n+x);i++)
            {
            b[i]=a[i];
            }
            for(i=0;i<=(n+x);i++)
            {
            printf("%d",b[i]);
            }
            getch();
            return 0;
            }

            vous pouvez me donner la correction complete de declaration jusqu'à la fin ......................................merci ^^))!!
            0
            1. Contributeur
              par "ranger", veut tu dire "classer" ? La réponse ne sera pas la même.
              0
              1. Contributeur
                Bonjour,

                Le code donné par émooc est correct en C comme en C++.
                Par contre faut faire attention à l'allocation.
                La taille de T3 doit être n1+n2

                Sinon, plutôt que de passer par deux boucles for, tu peux utiliser la fonction memcpy.

                Cdlt,
                Configuration: Debian
                IceWeasel

                0
                1. pourquoi sa ne marche pas ?
                  Tu as remarqué que je parle en C++
                  quel erreurs sont dédecté lors de la compilation ?
                  0
                  1. merci Emooc ...mais ca marche pas!!
                    0
                    1. C'est du C++ mais j'espère que tu comprendras le principe

                      après avoir déclarer tes tableau et leurs nombres de valeurs respectivement n1 et n2
                      int i;
                      for(i=0;i<n1;i++)
                      {
                      T3[i]=T1[i];
                      }
                      for(i=n1;i<(n1+n2);i++)
                      {
                      T3[i]=T2[i-n1];
                      }
                      }

                      Amicalement
                      Emooc :)
                      0
                      1. est ce qu'il n y a pas de genies ici pour aider un debutant?? _0)) !!
                        0