Partage
  • Partager sur Facebook
  • Partager sur Twitter

Inverser le contenu d'un tableau dans un autre

Sujet résolu
    16 juillet 2018 à 13:26:06

    Bonjour à tous, je suis relativement débutante en C et j'ai un soucis avec un exercice.

    Je dois inverser le contenu d'un tableau dans un autre en utilisant des pointeurs.
    Il doit y avoir une erreur dans ma deuxième boucle mais je ne comprends pas pourquoi, si quelqu'un pouvait m'éclairer:


    int main()
    {
        char tab[taille]={1, 2, 3, 4, 5};
        char tabInverse[taille]={0, 0, 0, 0, 0};
        int i;
        for (i=0; i<taille; i++) {
            printf("%d ", tab[i]);
        }
    
        int *p = &tab[taille-1]; 
        int *pInverse = tabInverse;
    
        for (i=0; i<taille; i++) {
            *pInverse = *p;
            p--;
            pInverse++;
        }
    
        for (i=0; i<taille; i++) {
            printf("Tableau inverse: %d ", tabInverse[i]);
        }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      16 juillet 2018 à 13:39:20

      Salut,

      Tout d'abord, éviter les ambiguités et garder la cohérence. Je remplacerais tes lignes 10 et 11 par :

      int* p = &(tab[taille-1]);
      int* pInverse = &(tab[0]);



      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        16 juillet 2018 à 13:39:47

        Hello,

        Change le type de tes tableaux (char), ça fonctionnera

        Et où est déclaré / initialisé taille ?

        -
        Edité par edgarjacobs 16 juillet 2018 à 13:42:18

        • Partager sur Facebook
        • Partager sur Twitter

        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          16 juillet 2018 à 13:46:59

          Arf c'était comme je le pensais une erreur stupide, merci edgar. La taille est initialisée avec un #include plus haut!
          Et merci de la précision Fvirtman
          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2018 à 13:51:26

             Firefoy a écrit:

            ....une erreur stupide....

            Toujour faire attention aux warnings du compilateur, elles sont rarement là pour pour faire joli....

            Firefoy a écrit:

            ....La taille est initialisée avec un #include plus haut!....

            En général, mais c'est une convention tacite, les noms des #define sont écrits en majuscules: #define TAILLE 5

            Si tu avais fait ça (mais, comme écrit, aucune règle ne l'impose), je n'aurais pas psoé la question.



            -
            Edité par edgarjacobs 16 juillet 2018 à 13:59:26

            • Partager sur Facebook
            • Partager sur Twitter

            On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

              16 juillet 2018 à 13:56:26

              Oh d'accord, je prendrais l'habitude de le faire dans le futur, merci encore
              • Partager sur Facebook
              • Partager sur Twitter

              Inverser le contenu d'un tableau dans un autre

              × 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