Curso de Programación en C/Prog58

De WikiCabal
Ir a la navegación Ir a la búsqueda

Prog58

 1 #include <stdio.h>
 2 
 3 char obten_eleccion( void );
 4 char obten_primer( void );
 5 int obten_int( void );
 6 void count( void );
 7 
 8 int main( void )
 9 {
10   int eleccion;
11 
12   while( ( eleccion = obten_eleccion() ) != 'q' )
13   {
14     switch( eleccion )
15     {
16       case 'a' :  printf( "Compra bajo, vende alto.\n");
17                   break;
18       case 'b' :  putchar( '\a' );  /* ANSI */
19                   break;
20       case 'c' :  count();
21                   break;
22       default  :  printf( "¡Error en el Programa!\n");
23                   break;
24     }
25   }
26   printf("Adios\n");
27 
28   return 0;
29 }
30 
31 void count( void )
32 {
33   int i,
34       n;
35 
36   printf( "Entra un intero:\n" );
37   n = obten_int();
38   for( i = 1; i <= n; i++ )
39     printf( "%d\n", i );
40   while( getchar() != '\n' )
41     continue;
42 }
43 
44 char obten_eleccion( void )
45 {
46   int ch;
47 
48   printf( "\ta. aviso           b. timbre\n"
49           "\tc. count           q. terminar\n"
50           "\tEntra una letra: " );
51   ch = obten_primer();
52   while (  ( ch < 'a' || ch > 'c') && ch != 'q' )
53   {
54     printf( "Responde por favor con a, b, c, or q: " );
55     ch = obten_primer();
56   }
57 
58   return ch;
59 }
60 
61 char obten_primer( void )
62 {
63   int ch;
64 
65   ch = getchar();
66   while( getchar() != '\n' )
67     continue;
68 
69   return ch;
70 }
71 
72 int obten_int( void )
73 {
74   int ingreso;
75   char ch;
76 
77   while( scanf( "%d", &ingreso ) != 1 )
78   {
79     while( ( ch = getchar()) != '\n' )
80       putchar( ch );
81       printf( "No es un intero.\nFavor a ingresar un "
82               "intero cómo 25, -178, or 3: " );
83   }
84 
85   return ingreso;
86 }

Resultado

[rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog58 Prog58.c
[rrc@Pridd CClase]$ ./Prog58
	a. aviso           b. timbre
	c. count           q. terminar
	Entra una letra: 4
Responde por favor con a, b, c, or q: a
Compra bajo, vende alto.
	a. aviso           b. timbre 
	c. count           q. terminar
	Entra una letra: b
	a. aviso           b. timbre
	c. count           q. terminar
	Entra una letra: c
Entra un intero:
3
1
2
3
	a. aviso           b. timbre
	c. count           q. terminar
	Entra una letra: q
Adios

Explicación