Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/08/2012, 21:40
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 13 años
Puntos: 94
Respuesta: Piedra, Papel, Tijeras (C) Problema

Hola!
Cita:
para entrar el dato se debe darlo dos veces, no se porque
eso se debe al bucle while que esta antes del scanf. Como ya sabes ese bucle lo que hace es limpiar el bufer, pero cuando el programa se ejecuta el bufer del teclado esta limpio por lo tanto el getchar espera por caracteres hasta encontrar '\n'(una vez encontrado el '\n' por el getchar() recien scanf pide el ingreso)...



Código C:
Ver original
  1. do
  2.       scanf("%d",&ju);
  3.     while ((ju == '\n') && (ju != '1' || ju != '2' || ju != '3'));
ju es una variable de tipo int por lo tanto compararlo con el ascii de esos caracteres no tiene sentido ya que siempre va a ser falso la condicion(ju deberia ser un char para hacer uso del do-while)


Saludos