Curso de Programación en C/Prog96

De WikiCabal
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]$ 

Explicación