1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Prototypes des fonctions
void swap(int*, int*);
void tri(int[], size_t, char);
void saisie(int tab[], size_t n);
void affich(int tab[], size_t n);
// Fonction de swap entre deux int
void swap(int *x, int *y) {
int tmp;
tmp=(*x);
(*x)=(*y);
(*y)=tmp;
}
// Fonction de tri
void tri(int tab[], size_t n, char sens) {
size_t i;
size_t j;
size_t max;
// Tri par sélection du tableau
for (i=0; i < n; i++) {
// Recherche élément à changer de place
max=i;
for (j=i+1; j < n; j++) {
switch (sens) {
case '<': // Tri croissant
if (tab[j] < tab[max]) max=j;
break;
case '>': // Tri décroissant
if (tab[j] > tab[max]) max=j;
break;
}
}
// Swap entre élément courant et élément sélectionné
if (i != max) swap(&tab[i], &tab[max]);
}
}
// Saisie du tableau
void saisie(int tab[], size_t n) {
size_t i;
// Saisie des valeurs du tableau
for (i=0; i < n; i++) {
printf("Saisir le nombre n° %lu:", i+1);
scanf("%i",&tab[i]);
}
}
// Affichage du tableau
void affich(int tab[], size_t n) {
size_t i;
// Affichage des valeurs du tableau
for (i=0; i < n; i++)
printf("%7i", tab[i]);
}
// Programme principal
int main() {
size_t n;
// Saisie de la taille du tableau
printf("Saisir la taille du tableau:");
scanf("%lu", &n);
// Définition du tableau selon la taille prédéfinie
int tab[n];
// Saisie des valeurs du tableau
saisie(tab, n);
// Tri du tableau dans le sens de mon choix
tri(tab, n, '>');
// Affichage du tableau trié
affich(tab, n);
} |
Partager