Curso de Programación en C/Prog58
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