int MAX_TAB = 100; // nombre maximal de skieurs void main() { int nbSkieur; double [][] notess = new double[MAX_TAB][6]; int k; double somme; double mini; double maxi; double noteFinale; int i; // saisie et calcul des notes finales nbSkieur = readInt( "nbSkieur : " ); for(i=1; i<=nbSkieur; i=i+1) { somme = 0; mini = 1000; maxi = -1000; for(k=1; k<=5; k=k+1) { notess[i-1][k-1] = readDouble( "notess[" + (i-1) + "][" + (k-1) + "] : " ); somme = somme + notess[i-1][k-1]; if (notess[i-1][k-1] < mini) { mini = notess[i-1][k-1]; } if (notess[i-1][k-1] > maxi) { maxi = notess[i-1][k-1]; } } noteFinale = somme - mini - maxi; notess[i-1][6-1] = noteFinale; } // tri de la matrice par note finale décroissante (6 ième colonne) int j; double copie; for(i=1; i<=nbSkieur-1; i=i+1) { for(k=i+1; k<=nbSkieur; k=k+1) { if (notess[i-1][6-1] < notess[k-1][6-1]) { // on permute la ligne i et la ligne k for(j=1; j<=6; j=j+1) { copie = notess[i-1][j-1]; notess[i-1][j-1] = notess[k-1][j-1]; notess[k-1][j-1] = copie; } } } } // affichage de la matrice triée for(i=1; i<=nbSkieur; i=i+1) { for(k=1; k<=6; k=k+1) { print("\t"); print(notess[i-1][k-1]); } println(); } }