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
|
/* L'utilisateur tape une suite d'entrées au clavier, elles
* sont triées puis affichées à l'écran */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 25 /*pas plus de 25 phrases */
int get_lines(char *lines[]); /*entrée des phrases */
void sort(char *p[], int n); /*tris des phrases */
void print_strings(char *p[], int n); /*réaffichage à l'écran */
char *lines[MAXLINE];
int main()
{
int number_of_lines;
/*lire les phrases au clavier */
number_of_lines = get_lines(lines);
if (number_of_lines < 0)
{
puts("Erreur de mémoire");
exit(-1);
}
sort(lines, number_of_lines);
print_strings(lines, number_of_lines);
return 0;
}
int get_lines(char *lines[])
{
int n = 0;
char buffer[80]; /*Mémoire de stockage temporaire */
puts("Tapez les phrases une par une");
puts("Terminez par un simple appui sur Entrée");
while((n < MAXLINE) && (gets(buffer) !=0) && (buffer[0] !='\0'))
{
if ((lines[n] = (char *)malloc(strlen(buffer)+1)) == NULL)
return -1;
strcpy(lines[n++], buffer);
}
return n;
} /*fin de get_lines() */
void sort(char *p[], int n)
{
int a,b;
char *x;
for (a = 1; a < n; a++)
for (b = 0; b < n-1; b++)
{if (strcmp(p[b],p[b+1] ) > 0)
{ x = p[b];
p[b] = p[b+1];
p[b+1] = x;
}
}
} /*fin de sort() */
void print_strings(char *p[], int n)
{ int count;
for(count = 0; count <n; count++)
printf("%s\n", p[count]);
} /*fin de print_strings() */ |
Partager