elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No me sale un simple do - while T_T
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No me sale un simple do - while T_T  (Leído 2,066 veces)
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
No me sale un simple do - while T_T
« en: 13 Diciembre 2016, 21:57 pm »

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.
Código
  1. int main()
  2. {
  3. char car;
  4.  
  5. do
  6. {
  7.    printf("Ingrese un caracter: \n");
  8.    car=getche();
  9.  
  10. }
  11. while((car<'A' && car>'Z') || car!='*');
  12.  
  13. printf("\nLa letra ingreada es %c",car);
  14.  
  15.    return 0;
  16. }
  17.  

Basicamente es eso, en las condiciones del while la estoy pifiando y no entiendo.


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: No me sale un simple do - while T_T
« Respuesta #1 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.


En línea

palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: No me sale un simple do - while T_T
« Respuesta #2 en: 13 Diciembre 2016, 23:09 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

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. int main()
  5. {
  6. char car;
  7.  
  8. do
  9. {
  10.    printf("Ingrese un caracter: \n");
  11.    car=getche();
  12.  
  13. }
  14. while((car<'A' || car>'Z') || car!='*');
  15.  
  16. printf("\nLa letra ingreada es %c",car);
  17.  
  18.    return 0;
  19. }
  20.  
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: No me sale un simple do - while T_T
« Respuesta #3 en: 13 Diciembre 2016, 23:20 pm »

Citar
Tengo un ejercicio en el cual tengo que validar el ingreso de un caracter permitiendo que solo guarde letras mayusculas o el asterisco.

Código:
while((car<'A' || car>'Z') || car!='*');
tabla de verdad

"car<'A'" lo llamaremos "a"
"car>'>'" lo llamaremos "b"
car!='*' lo llamaremos "c"

Código:
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...
En línea

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.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no me sale el Api de msn « 1 2 »
.NET (C#, VB.NET, ASP)
<sylar> 12 6,367 Último mensaje 30 Julio 2009, 02:42 am
por <sylar>
por que no me sale el @?
GNU/Linux
dArKo2 6 3,308 Último mensaje 6 Mayo 2010, 18:04 pm
por Festor
Algo simple de arreglos que no me sale (Si, soy re newbie)
Programación C/C++
palacio29 3 2,221 Último mensaje 25 Noviembre 2016, 17:16 pm
por Slava_TZD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines