Ver Mensaje Individual
  #9 (permalink)  
Antiguo 01/02/2015, 15:28
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 8 años, 7 meses
Puntos: 38
Respuesta: Problemas con varios operadores lógicos (&&,||) dentro de IF

Prueba eso:

Código C:
Ver original
  1. //Entrada de datos
  2.     printf("Ingrese tipo de veh%cculo (Cami%cn = C/Autom%cvil = A): ", 161, 162, 162, 162);
  3.     scanf("%c%*c", &lcTipoVehiculo);  //para leer un char %c.
  4.  
  5.     printf("Hora de alta congesti%cn (S/N): ", 162, 162);
  6.     scanf("%c%*c", &lcHoraAlta);
  7.  
  8.     printf("N%cmero de pasajeros: ", 163);
  9.     scanf("%d%*c", &liNumeroPasajeros);  //para leer un int %d

El %*c ignora la tecla enter, esta es la causante de problemas traz leer muchos caracteres intercalados con enters de por medio.
Si vas a leer una letra recuerde que pulsas enter para decir que ya has introducido el char, o sea que tienes 2 chars por el precio de 1. O bien necesitas limpiar el buffer antes y/o después de cada scanf, o bien ignoras esos enters con algunos trucos como puede ser el especificador de entrada %*c que al contrario de %c que le el numero, %*c lo ignora. ;)

Debes leer sobre el buffer de entrada, y tambien el de salida, pero ahora mismo el de entrada te esta trolleando. XD