Partage
  • Partager sur Facebook
  • Partager sur Twitter

sI quelqu'un peut m'expliqer

    10 août 2006 à 14:37:45

    bonjour tout le monde,

    j'ai un petit problème et j'aimerai bien qu'une grosse tête m'explique tout cela :p
    c'est au sujet de l'exercice 5 des tableaux.

    voici le code de la fonction:


    void ordonnerTableau (long tableau[], long tailleTableau)//fonction qui ordonne le tableau 1
    {
            long i, j;
            long valeur1 = 0, valeur2 = 0;

            for (i = 0 ; i < tailleTableau ; i++)
            {
                    valeur1 = tableau[i];

                    for (j = i ; j < tailleTableau ; j++)
                    {
                            valeur2 = tableau[j];

                            if (valeur1 > valeur2)
                            {
                                    tableau[i] = valeur2;
                                    tableau[j] = valeur1;
                                    valeur1 = valeur2;
                            }
                    }
                    printf("%ld\n", valeur2);
            }
    }



    ce code marche très bien mais le hic c'est que je ne comprend pas tout :(
    j'ai bien comprit qu'il fallait créer deux boucles "for" afin de faire une comparaison entre les variables, mais là ou je ne comprend plus, c'est comment cela fait remonter les chiffres à la bonne place.

    Si quelqu'un peut m'aider, car les explications données sur le forum n'explique pas cela. ^^

    Merci beaucoup :magicien:
    • Partager sur Facebook
    • Partager sur Twitter
      10 août 2006 à 14:45:35

      Si tu veux j'ai un code que je trouve beaucoup plus simple:

      void Tab_Ordonne(long* tableau, long taille) {
          long i = 0, tmp = 0;
          int test = 0;
          do {
              test = 0;
              for (i=0; i<taille; i++) {
                  if (tableau[i] > tableau[i+1] && i+1<taille) {
                      tmp = tableau[i];
                      tableau[i] = tableau[i+1];
                      tableau[i+1] = tmp;
                      i = 0;
                      test = 1;
                  }
              }
          }while(test);
      }


      Si la valeur est supérieure à la suivantes tu les inverses et tu recommence à parcourir le tableau. Et tu fait cela tant que le tableau n'est pas ordonné. Je ne sais pas trops si c'est plus optimisé mais il me semble
      • Partager sur Facebook
      • Partager sur Twitter
        10 août 2006 à 16:36:33

        Merci pour ta réponse, c'est sympa de ta part.
        • Partager sur Facebook
        • Partager sur Twitter

        sI quelqu'un peut m'expliqer

        × 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