Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/06/2012, 01:32
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Error extraño: programa se salta un scanf

Hola! lo que te sucede es que te falta un fflush despues del scanf:
Código C:
Ver original
  1. printf("¿Desea calcular otra regla de tres? (s/n): ");
  2.         scanf("%c", &confirmar); despues de esto tiene q ir un fflush

Y otra cosa q tenes q cambiar es:
Código C:
Ver original
  1. if (confirmar == 's') {
  2.  
  3.             seguir = 's';
  4.  
  5.         }
por esto:
Código C:
Ver original
  1. if (confirmar == 's' || confirmar == 'n') {
  2.  
  3.             seguir = confirmar;
  4.  
  5.         }
sino nunca vas a salir del bucle while. Igual esto solo funciona cuando se ingresa una 's' o 'n'. Pero q pasa cuando se ingresa otra letra??? el bucle se sigue ejecutando, lo cual no es muy optimo; pensa como podes hacer para q cuando se ingrese algo distinto de s/n vuelva a preguntar "Desea calcular otra regla de tres? (s/n):"...

Hasta aca los arreglos, ahora una critica: fflush no esta definido para stdin, no es bueno usarlo. Usa esto despues de cada scanf:
Código C:
Ver original
  1. while(getchar()!='\n');// limpia el bufer del teclado


Saludos