No me sale un simple do - while T_T

Iniciado por palacio29, 13 Diciembre 2016, 21:57 PM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

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.

MAFUS

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.

palacio29

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;
}

engel lex

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...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.