Curso de Programación en C/Prog96
Ir a la navegación
Ir a la búsqueda
Prog96
1 #include <stdio.h>
2 #include <string.h>
3
4 #define SIZE 81
5 #define LIM 20
6 #define HALT ""
7
8 void stsrt( char *strings[], int num );
9
10 int main( void )
11 {
12 char Entrada[LIM][SIZE];
13 char *ptstr[LIM];
14 int ct = 0;
15 int k;
16
17 printf( "Escribe hasta %d líneas y yo los ordeno.\n",LIM );
18 printf( "Presiona la tecla de Enter solo en una línea para terminar.\n" );
19
20 while( ct < LIM && gets( Entrada[ct] ) != NULL
21 && Entrada[ct][0] != '\0')
22 {
23 ptstr[ct] = Entrada[ct];
24 ct++;
25 }
26 stsrt( ptstr, ct );
27 puts( "\nAquí es la lista ordenada:\n" );
28 for( k = 0; k < ct; k++ )
29 puts( ptstr[k] );
30
31 return 0;
32 }
33
34 /* string-pointer-sorting function */
35 void stsrt(char *strings[], int num )
36 {
37 char *temp;
38 int ParteSuperior, Buscar;
39
40 for( ParteSuperior = 0; ParteSuperior < num-1; ParteSuperior++ )
41 for( Buscar = ParteSuperior + 1; Buscar < num; Buscar++ )
42 if( strcmp( strings[ParteSuperior], strings[Buscar] ) > 0 )
43 {
44 temp = strings[ParteSuperior];
45 strings[ParteSuperior] = strings[Buscar];
46 strings[Buscar] = temp;
47 }
48 }
Resultado
[rrc@llawyr CClase]$ gcc -Wall -o Prog96 Prog96.c [rrc@llawyr CClase]$ ./Prog96 Escribe hasta 20 líneas y yo los ordeno. Presiona la tecla de Enter solo en una línea para terminar. Línea 1 Línea 2 Línea 8 Linea 3 Línea 20 Línea 9 Aquí es la lista ordenada: Linea 3 Línea 1 Línea 2 Línea 20 Línea 8 Línea 9 [rrc@llawyr CClase]$