Tri chaine de caractère par insertion séquentielle
Fermé
milexarc
Messages postés92Date d'inscriptionlundi 25 février 2013StatutMembreDernière intervention 2 décembre 2016
-
15 mars 2015 à 20:26
Bonjour,
Je voudrais faire un programme permettant de trier des mots par ordre alphabétique. Je vous met le programme que j'ai écris :
#include <stdio.h>
#define MAX 6 #define X 3 typedef char TEXTE[MAX][X]; TEXTE t;
void lecture(TEXTE t) /* remplissage du tableau t */ { int i; for (i=0; i < MAX; i=i+1) { printf("donnez un mot de %d lettre : ", X); scanf("%d",&t[i]); } }
int position(int i, TEXTE t) /* determine le plus petit indice p / 0 <= p <= i */ /* qui verifie t[p] >= t[i] */ { int p; p = 0; while ( t[p] < t[i] ) p = p+1; return p; }
void translation(int p, int i, TEXTE t) /* translation de t[p..i-1] vers t[p+1..i] */ { int j; for (j=i; p < j; j=j-1) t[j] = t[j-1]; }
void tri(TEXTE t) /* tri du tableau t par insertion sequentielle */ { int i,p,x;
for (i=1; i < MAX; i=i+1) { p = position(i,t); x = t[i]; translation(p,i,t); t[p] = x; } }
void affichage(TEXTE t) /* affichage du tableau t */ { int i; printf("\nSuite triee :\n"); for (i=0; i < MAX; i=i+1) printf("t[%d]=%s ",i,t[i]); printf("\n\n"); }
int main() { lecture(t); tri(t); affichage(t); return 0; }
j'ai mis en gras les erreurs que m'indique le compilateur.
Auriez-vous une solution ?
A voir également:
Tri chaine de caractère par insertion séquentielle