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
| /*Ecrire un programme qui charge les mots du fichier MOTS.TXT
dans la mémoire centrale, les trie daprès la méthode par
propagation (méthode de la bulle) et les écrit dans un deuxième
fichier MOTS_TRI.TXT.*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[])
{
// Declaration variable
FILE *pfichier = fopen("MOTS.TXT","w");
char tri[255][255];
char *temp;
temp= malloc(sizeof(char)*255);
int i,j,nb_mot=0,a,b;
// Initialisation interractive
printf("Combien de mot voulez vous rentrer ? : ");
scanf("%d",&nb_mot);
char mot[nb_mot];
// Ecriture dans le fichier
for (i = 0; i < nb_mot; ++i)
{
printf("Mot #%d : ",i+1);
scanf("%255s",mot);
fprintf(pfichier,"%s\n",mot );
}
fclose(pfichier);
// Lecture
pfichier = fopen("MOTS.TXT","r");
if (pfichier==NULL)
{
puts("erreur");
exit(1);
}
for (i=0;i<nb_mot;i++)
{
//fscanf(pfichier,"%s",tri[i]);
fgets(tri[i],50,pfichier);
}
for(a=0;a<nb_mot-1;a++)
for(b=a+1;b<nb_mot;b++)
if(strcmp(*(tri+a),*(tri+b)) > 0 )
{
strcpy(temp , *(tri+a));
strcpy(*(tri+a) , *(tri+b));
strcpy(*(tri+b) , temp);
}
// Affichage
for (i=0;i<nb_mot;i++)
printf("%s\n",tri[i]);
fclose(pfichier);
return 0;
} |
Partager