Débutant en C : trier tableau ?

ninie -  
TovoPierre Messages postés 3 Statut Membre -
Es ce qu'une personne sait comment trier un tableau de valeurs par ordre croissant en langage C ?

car je dois initialiser un tableau de 7 valeurs aléatoires en les triant dans l'ordre croissant ds un meme tableau

merci davance c urgent

16 réponses

  1. offset_0x0ff0
     
    salut,

    juste une autre solution. compilé sous linux

    exo du www.siteduzero.fr

    // une fonction ordonnerTableau qui classe les valeurs d'un tableau dans l'ordre croissant. Ainsi, un tableau qui vaut {15, 81, 22, 13} doit à la fin de la fonction valoir {13, 15, 22, 81} !

    #include <stdio.h>

    void ordonnerTableau(long tableau[], long tailleTableau);

    int main(int argc, char *argv[])
    {
    long tab[4] = {15,81,22,13};

    int i=0;

    ordonnerTableau(tab,4);

    for(i=0; i<4; i++)
    {
    printf("%ld\n",tab[i]);
    }
    return 0;
    }

    void ordonnerTableau(long tableau[], long tailleTableau)
    {
    long i,t,k=0;

    for(t = 1; t < tailleTableau; t++)
    {
    for(i=0; i < tailleTableau - 1; i++)
    {
    if(tableau[i] > tableau[i+1])
    {
    k= tableau[i] - tableau[i+1];
    tableau[i] -= k;
    tableau[i+1] += k;
    }
    }
    }
    }
    23
    1. dudulle93 Messages postés 116 Statut Membre 62
       
      Salut, désolé de remuer les vieux sujets mais pourrais tu m'expliquer la ligne
      for(t = 1; t < tailleTableau; t++)
      stp?
      car j'ai essayé sans et j'ai vu que les 2 premiers seulement étaient rangé mais j'ai du mal à comprendre... merci :)
      0
    2. touf57
       
      dudulle93
      le for que tu ne comprends pas est une notation élémentaire des boucles for en langage objet.
      Donc for(int t=1;t<tailleTableau;t++) signifie:
      pour un index de type entier à partir de 1
      tant que l'index t est inférieur à la taille du tableau
      incrémente t (bien que je préfère la notation ++t)

      En globale cela veut dire que tu vas boucler de 1 à la taille du tableau -1, et a chaque boucle tu incrémentes ton compteur t.

      J'espère que c'est plus clair pour toi
      0
    3. bouira10
       
      en ajoute quoi pour change se pregramme a une fonction d'un programme si en veux ajoute une valeur comment en peux garde l'ordre croissant
      0
    4. mido
       
      #include <stdio.h>
      #include <stdlib.h>
      void ordonner(int T[],int);

      int main(int argc, char *argv[])
      {
      int T[5]={7,4,5,3,8},i;

      ordonner(T,5);
      for(i=0;i<5;i++)
      {
      printf("T[%d]=%d\n",i,T[i]);
      }
      system("pause");
      return 0;
      }
      void ordonner(int T[],int taille)
      {
      int i,j,p=0;
      for(j=0;j<taille;j++)
      {
      for(i=0;i<taille;i++)
      {
      do
      {
      p=T[i];

      T[i]=T[i+1];

      T[i+1]=p;

      }while(T[i]>T[i+1]);
      }
      }
      }
      0