This repository has been archived on 2019-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
s6-pa-tp/TP10/exo2.c
2017-04-03 15:10:31 +02:00

80 lines
1.5 KiB
C

#include <stdlib.h>
#include <stdio.h>
// 2.2.1
void triBulleOld(int tab[], int size){
int i, j, tmp;
for(i = size - 1; i > 0; i--){
for(j = 0; j < i; j++){
// 2.2.2
// Il faut modifier le < en > pour faire un tri décroissant
if (tab[j+1] < tab[j]){
tmp = tab[j+1];
tab[j+1] = tab[j];
tab[j] = tmp;
}
}
}
}
// 2.2.3
int superieur(int a, int b) {
if (a > b) {
return 1;
} else if (a == b) {
return 0;
} else {
return -1;
}
}
// 2.2.4
int inferieur(int a, int b) {
if (a < b) {
return 1;
} else if (a == b) {
return 0;
} else {
return -1;
}
}
// 2.2.5
void triBulle(int tab[], int size, int compare(int, int)) {
int i, j, tmp;
for(i = size - 1; i > 0; i--){
for(j = 0; j < i; j++){
// 2.2.2
// Il faut modifier le < en > pour faire un tri décroissant
if (compare(tab[j+1], tab[j]) == 1){
tmp = tab[j+1];
tab[j+1] = tab[j];
tab[j] = tmp;
}
}
}
}
#define SIZE 5
void afficherTableau(int t[], int size) {
int i;
for (i = 0; i < size; i++) {
printf("t[%d] = %d\n", i, t[i]);
}
}
int main() {
int t[SIZE] = {1, 4, 7, 9, 3};
printf("Tri avec inferieur\n");
triBulle(t, SIZE, inferieur);
afficherTableau(t, SIZE);
printf("Tri avec superieur\n");
triBulle(t, SIZE, superieur);
afficherTableau(t, SIZE);
}