Curso de Programación en C/Prog58
Ir a la navegación
Ir a la búsqueda
Prog58
#include <stdio.h>
char obten_eleccion( void );
char obten_primer( void );
int obten_int( void );
void count( void );
int main( void )
{
int eleccion;
while( ( eleccion = obten_eleccion() ) != 'q' )
{
switch( eleccion )
{
case 'a' : printf( "Compra bajo, vende alto.\n");
break;
case 'b' : putchar( '\a' ); /* ANSI */
break;
case 'c' : count();
break;
default : printf( "¡Error en el Programa!\n");
break;
}
}
printf("Adios\n");
return 0;
}
void count( void )
{
int i,
n;
printf( "Entra un intero:\n" );
n = obten_int();
for( i = 1; i <= n; i++ )
printf( "%d\n", i );
while( getchar() != '\n' )
continue;
}
char obten_eleccion( void )
{
int ch;
printf( "\ta. aviso b. timbre\n"
"\tc. count q. terminar\n"
"\tEntra una letra: " );
ch = obten_primer();
while ( ( ch < 'a' || ch > 'c') && ch != 'q' )
{
printf( "Responde por favor con a, b, c, or q: " );
ch = obten_primer();
}
return ch;
}
char obten_primer( void )
{
int ch;
ch = getchar();
while( getchar() != '\n' )
continue;
return ch;
}
int obten_int( void )
{
int ingreso;
char ch;
while( scanf( "%d", &ingreso ) != 1 )
{
while( ( ch = getchar()) != '\n' )
putchar( ch );
printf( "No es un intero.\nFavor a ingresar un "
"intero cómo 25, -178, or 3: " );
}
return ingreso;
}
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