/* Programme qui trie les éléments d'une liste d'entiers */
/* (tri par sélection ordinaire)                         */
/* Fait par MM le 30/08/99                               */
/* Dernière mise à jour : 07/09/2000                     */

#include<stdio.h>

const int TAILLE=10;

int main()
{

/* DECLARATION DES VARIABLES */

/* Liste des Ui avec i<TAILLE*/
int iTableau[TAILLE];
/* L'indice de l'élément courant */
int iIndiceElCour;
/* L'élément de valeur minimum dans la liste */
int iMin;
/* Un compteur pour la boucle */
int iCompteur;
/* Une variable temporaire pour l'échange de deux éléments */
int iEchange;

/* CORPS DU PROGRAMME */

/* Saisie des éléments de la liste */
for(iIndiceElCour =0; iIndiceElCour <TAILLE; iIndiceElCour ++)
 {
   /* Affichage d'un message demandant la valeur de Ui */
   /* avec i incrementé à chaque passage de la boucle  */
   printf("Saisissez la valeur de U%d\n", iIndiceElCour);

   /* Saisie de la valeur de Ui */
   scanf("%d",&iTableau[iIndiceElCour]);
 }

/* Pour tous les éléments de la liste */
for(iIndiceElCour=0; iIndiceElCour<TAILLE; iIndiceElCour++)
 {
   /* Initialisation de l'élément de valeur minimum */
   iMin = iTableau[iIndiceElCour];
   //printf("Min %d\n",iMin);

   /* Pour tous les éléments allant de l'élément courant */
   /* au dernier élément de la liste */
   for(iCompteur=iIndiceElCour+1; iCompteur<TAILLE; iCompteur++)
    {
      /* Si la valeur de l'élément courant */
      /* n'est pas la valeur minimum       */
      if (iMin > iTableau[iCompteur])
       {
          /* Alors, on échange l'élément courant avec */
          /* l'élément de valeur minimum              */
          iEchange = iTableau[iIndiceElCour];
          iTableau[iIndiceElCour] = iTableau[iCompteur];
          iTableau[iCompteur] = iEchange;

          /* Mise à jour du minimum */
          iMin = iTableau[iIndiceElCour];
       }
    }
  }

/*Affichage de la liste */
printf("La liste après tri est la suivante : \n");
for(iIndiceElCour=0; iIndiceElCour<(TAILLE-1); iIndiceElCour++)
 {
        printf("%d, ",iTableau[iIndiceElCour]);
 }
printf("%d\n ",iTableau[TAILLE-1]);
}

