Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/10/2008, 22:58
Avatar de v4mp1r0
v4mp1r0
 
Fecha de Ingreso: febrero-2008
Mensajes: 36
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validar un caracter en C

Primero, algunas aclaraciones:

punk_not_dead, le interesa leer un solo caracter, no una cadena de ellos, por lo tanto en este caso no es util el %s.

dioscw: cuando haces un %s, no debes colocar un &. Puesto que %s indica q es un puntero a un string. Por esa razon no va el &. Por lo tanto si deseas almacenar un string, basta con que hagas scanf("%s", variable);

Ahora al grano.

Tu algoritmo reconoce que el valor de sexo es f o m segun corresponda (lo probe con el gdb). Lo que tienes que hacer es cambiar el || en el if por &&, con lo que te quedaria algo como esto:
Código:
do
{
  printf ("\nIntrodusca Sexo: ");
  scanf ("%c", & sexo); getchar();     /*Con el getchar rescatas el enter*/
  if (sexo!='f'&&sexo!='m')               
    printf("\nSEXO INCORRECTO, POR FAVOR PRESIONE ENTER E INTENTE DE NUEVO");
}        
while (sexo!='f' && sexo!='m');
Recuerda que un || para que sea falso, ambos valores deben ser falsos, en cambio con el &&, basta que uno lo sea.

Salu2!