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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| #include <stdio.h>
#include <string.h>
extern int SaisirMot(char[], char [][]);
extern void Afficher(char[][], int);
extern void TrierTab(char[][]);
int main()
{
int choix,n;
char noms [10][20], mot[10];
do
{
printf("...:::MENU:::...\n");
printf("1.Veuillez entrers des mots\n");
printf("2.Trier le tableau par ordre alphabètique\n");
printf("3.Afficher le tableau\n");
printf("4.Quitter\n");
scanf("%d",&choix);
printf("\n");
switch(choix)
{
case 1:n=SaisirMot(mot,noms);
break;
case 2:TrierTab(noms);
break;
case 3:Afficher(noms,n);
break;
case 4:printf("au revoir\n");
break;
default: printf("Faites un choix entre 1 et 4!\n");
}
} while (choix != 4); // tant que le choix fait est différent de 4
return(0);
}
/* Fonction : Saisir
**
** rôle : choix du nombre de mots que l'on veut saisir et saisie de ces derniers
**
** paramètres : mot, noms
**
** variables locales : entier n, entier i
**
** retourne : n
*/
int SaisirMot(char mot[10], char noms[10][20])
{
int n,i; // déclaration des variables n et i
printf("Combien de mots voulez vous entrer?\n");
scanf("%d",&n);
for(i=1;i<=n;i++) // pour i allant de 1 à n
{
printf("Entrez un mot:\n");
scanf("%s",mot);
strcpy(noms[i-1],mot); // Copie la chaine "mot" dans la chaine "noms[i-1]"
}
return(n);
}
/* Fonction : Afficher
**
** rôle : Affiche les mots saisis au clavier
**
** paramètres : noms , n
**
** variables locales : entier i
**
*/
void Afficher(char noms[10][20], int n)
{
int i; // déclaration de i
for(i=0;i<n;i++) // pour i allant de 1 à n
printf("le mot d'indice %d est %s\n",i+1,noms[i]); // affiche le résultat
}
/* Fonction : Trier
**
** rôle : Trie les mots saisis au clavier par ordre alphabètique
**
** paramètres : noms, n
**
** variables locales : entier i,j,tst ; caractère tmp[20]
*/
void TrierTab(char noms[10][20],int n)
{
int i ,j, tst ;
char tmp[20];
for ( i=0; i<n ; i++)
{
j=i+1;
for ( ; j<n ; j++ )
{
tst = strcmp (noms[i],noms[j]); // compare la chaine "noms[i]" à "noms[j]
if (tst > 0) // si tst est supérieur à 0
{
//Permutation des variables
strcpy(tmp,noms[i]); // copie la chaine "noms[i]" dans la chaine "tmp"
strcpy(noms[i],noms[j]); // copie la chaine "noms[j]" dans la chaine "noms[i]"
strcpy(noms[j],tmp); // copie la chaine "tmp" dans la chaine "noms[j]"
}
}
}
} |
Partager