C/Visual C - Pequeña duda

 
Vista:

Pequeña duda

Publicado por Dimus (1 intervención) el 18/07/2002 00:56:27
Hola a todos.
Tengo un pequeño problema, os explico ... He creado un pequeño programa que lo que hace es pedir al usuario que operacion quiere hacer (sumar,restar,multiplicar y dividir). Bien, entonces el usuario debe de introducir la primera letra de la opcion que desea (si quiere sumas insertara "s", si quiere restar "r" ...) Pues bien, si se inserta una letra que NO esta disponible para hacer la operacion, pues el programa le pedira otra vez la letra. (ejemplo):

[root@localhost autoenseñanza]# ./24

Sumar, Restar, Multiplicar, Dividir

introduza la primera letra: a

introduza la primera letra:
introduza la primera letra: ----> aqui tengo que introducir de nuevo el caracter

Pues bien, ¿sabes como podria para que no pregunta dos veces la letra ?
Seguidamente voy a poner el codigo fuente del programa.
Un saludo a todos y gracias por adelantado.


#include <stdio.h>

main()
{
int a, b;
char ch;
printf("\nSumar, Restar, Multiplicar, Dividir\n");

do{
printf("\nintroduza la primera letra: ");
fflush(stdin);
ch=getchar();

} while(ch!='s' && ch!='r' && ch!='m' && ch!='d'); // s=sumar r=restar ...
fflush(stdin);
printf("Introduzca el primer numero: ");
scanf("%d",&a);

printf("Introduzca el segundo numero: ");
scanf("%d",&b);

if(ch=='s') printf("%d", a+b);
else if(ch=='r') { printf("%d", a-b); }
else if(ch=='m') { printf("%d", a*b); }
else if(ch=='d') { printf("%d", a/b); }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Pequeña duda

Publicado por Javier (59 intervenciones) el 18/07/2002 06:04:57
Hola, quizá esto te pueda servir, para indicar la operación a realizar:

char Op;
:
do
{
....Op=toupper( getche()) ; // ctype.h y conio.h
} while ( strchr ( "SRMD", Op) == NULL ) ;

getche(): lee un caracter del teclado.

toupper(): convierte un char a mayúsculas. Necesario para que strchr , pueda encontrar el char en la cadena que está en mayúsculas.

strchr: busca un char dentro de una cadena. Devuelve NULL si no lo encuentra o un puntero al caracter encontrado en caso contrario.

Saludos

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar