#include <stdio.h> main() { /* Déclarations */ int A[50]; /* tableau donné */ int N; /* dimension */ int I; /* rang à partir duquel A n'est pas trié */ int J; /* indice courant */ int AIDE; /* pour la permutation */ int PMAX; /* indique la position de l'élément */ /* maximal à droite de A[I] */ /* Saisie des données */ printf("Dimension du tableau (max.50) : "); scanf("%d", &N ); for (J=0; J<N; J++) { printf("Elément %d : ", J); scanf("%d", &A[J]); } /* Affichage du tableau */ printf("Tableau donné :\n"); for (J=0; J<N; J++) printf("%d ", A[J]); printf("\n"); /* Tri du tableau par sélection directe du maximum. */ for (I=0; I<N-1; I++) { /* Recherche du maximum à droite de A[I] */ PMAX=I; for (J=I+1; J<N; J++) if (A[J]>A[PMAX]) PMAX=J; /* Echange de A[I] avec le maximum */ AIDE=A[I]; A[I]=A[PMAX]; A[PMAX]=AIDE; } /* Edition du résultat */ printf("Tableau trié :\n"); for (J=0; J<N; J++) printf("%d ", A[J]); printf("\n"); return 0; }