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
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main()
{
/* Déclarations */
char INTRO[50]; /* chaîne pour l'introduction des données */
char *MOT[4]; /* Tableau des pointeurs sur les 10 chaînes */
char *PTEMP; /* pointeurs d'aide pour l'échange des pointeurs */
int I,J; /* indices courants */
/* Saisie des données et allocation dynamique de mémoire */
puts("Introduire 4 phrases terminées chaque fois"
" par un retour à la ligne :");
for (I=0; I<4; I++)
{
/* Lecture d'une phrase */
printf("Phrase %d : ",I);
gets(INTRO);
/* Réservation de la mémoire */
MOT[I] = malloc(strlen(INTRO)+1);
/* S'il y a assez de mémoire, ... */
if (MOT[I])
/* copier la phrase à l'adresse */
/* fournie par malloc, */
strcpy(MOT[I], INTRO);
else
{
/* sinon afficher un message d'erreur */
printf("\aPas assez de mémoire \n");
/* et quitter le programme. */
exit(-1);
}
}
/* Afficher le tableau donné */
puts("Contenu du tableau donné :");
for (I=0; I<4; I++) puts(MOT[I]);
/* Effacer les 10 mots un à un,
en suivant l'ordre lexicographique */
J=0;
/*PAIDE=MOT[I];*/
while (J<4)
{
printf("44 %d %d\n",I,J);
for (I=J;I<4;I++)
{
printf("47 %s %s %d %d\n",MOT[I],MOT[J],I,J);
if (*MOT[I]<*MOT[J])
{
PTEMP=MOT[J];
MOT[J]=MOT[I];
MOT[I]=PTEMP;
printf("54 %s %s %d %d\n",MOT[I],MOT[J],I,J);
/* printf("51 %s %s\n",MOT[I],PAIDE); */
} else
{
printf("58 non %d %d<\n",I,J);
}
}
J++;
}
/* Afficher le tableau résultat */
puts("Contenu du tableau résultat :");
for (I=0; I<4; I++) puts(MOT[I]);
return 0;
} |
Partager