Exercice 1
#include <stdio.h> main() { /* Prototypes des fonctions appelées */ void TRI_SELECTION(int *T, int N); void LIRE_TAB (int *TAB, int *N, int NMAX); void ECRIRE_TAB (int *TAB, int N); /* Variables locales */ int T[100]; /* Tableau d'entiers */ int DIM; /* Dimension du tableau */ /* Traitements */ LIRE_TAB (T, &DIM, 100); printf("Tableau donné : \n"); ECRIRE_TAB (T, DIM); TRI_SELECTION(T, DIM); printf("Tableau trié : \n"); ECRIRE_TAB (T, DIM); return 0; } void TRI_SELECTION(int *T, int N) { /* Prototypes des fonctions appelées */ void PERMUTER(int *A, int *B); int *MAX3(int *TAB, int N); /* Variables locales */ int I; /* rang à partir duquel T n'est pas trié */ /* Tri par sélection directe du maximum */ for (I=0 ; I<N-1 ; I++) PERMUTER(T+I, MAX3(T+I,N-I) ); } int *MAX3(int *TAB, int N) { . . . } void PERMUTER(int *A, int *B) { . . . } void LIRE_TAB (int *TAB, int *N, int NMAX) { . . . } void ECRIRE_TAB (int *TAB, int N) { . . . }
Exercice 2
#include <stdio.h> main() { /* Prototypes des fonctions appelées */ void INSERER(int X, int *T, int *N); void LIRE_TAB (int *TAB, int *N, int NMAX); void ECRIRE_TAB (int *TAB, int N); /* Variables locales */ int T[100]; /* Tableau d'entiers */ int DIM; /* Dimension du tableau */ int A; /* Nombre à insérer */ /* Traitements */ LIRE_TAB (T, &DIM, 100); printf("Tableau donné : \n"); ECRIRE_TAB (T, DIM); printf("Introduire le nombre à insérer : "); scanf("%d", &A); INSERER(A, T, &DIM); printf("Tableau résultat : \n"); ECRIRE_TAB (T, DIM); return 0; } void INSERER(int X, int *T, int *N) { /* Variables locales */ int I; /* Insertion de X dans le tableau T supposé trié: */ /* Déplacer les éléments plus grands que X d'une */ /* position vers l'arrière. */ for (I=*N ; I>0 && *(T+I-1)>X ; I--) *(T+I) = *(T+I-1); /* X est copié à la position du dernier élément déplacé */ *(T+I)=X; /* Nouvelle dimension du tableau: */ (*N)++; /* Attention aux parenthèses ! */ } void LIRE_TAB (int *TAB, int *N, int NMAX) { . . . } void ECRIRE_TAB (int *TAB, int N) { . . . }