Hola
Tengo un ejercicio en el cual tengo que validar el ingreso de un caracter permitiendo que solo guarde letras mayusculas o el asterisco.
Lo hago y solo valida el asterisco y si pongo mayus o minus o cualquier otro caracter sigue pidiendo.
int main()
{
char car;
do
{
printf("Ingrese un caracter: \n");
car=getche();
}
while((car<'A' && car>'Z') || car!='*');
printf("\nLa letra ingreada es %c",car);
return 0;
}
Basicamente es eso, en las condiciones del while la estoy pifiando y no entiendo.
car no puede ser nunca menor a A y mayor a Z al mismo tiempo, es como decir que un número es menor a 0 y mayor a 10 al mismo tiempo. Eso está mal.
Cita de: MAFUS en 13 Diciembre 2016, 22:41 PM
car no puede ser nunca menor a A y mayor a Z al mismo tiempo, es como decir que un número es menor a 0 y mayor a 10 al mismo tiempo. Eso está mal.
Le puse un || en esa parte y ahora no me acepta ningun caracter
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char car;
do
{
printf("Ingrese un caracter: \n");
car=getche();
}
while((car<'A' || car>'Z') || car!='*');
printf("\nLa letra ingreada es %c",car);
return 0;
}
CitarTengo un ejercicio en el cual tengo que validar el ingreso de un caracter permitiendo que solo guarde letras mayusculas o el asterisco.
while((car<'A' || car>'Z') || car!='*');
tabla de verdad
"car<'A'" lo llamaremos "a"
"car>'>'" lo llamaremos "b"
car!='*' lo llamaremos "c"
abc -> (a or b) -> or c
VVV -> V -> V
VVF -> V -> V
VFV -> V -> V
VFF -> V -> V
FVV -> V -> V
FVF -> V -> V
FFV -> V -> V
FFF -> F -> F
por tabla de verdad vemos que solo si "car" es >='A', a su vez <='Z' y a su vez =='*' sale...
es decir para salir del while car debe ser una letra y simultáneamente asterisco...