Cita:
Iniciado por amchacon Te faltan varios parentesis ahí, creo que lo que quieres decir es:
Código C++:
Ver originalif (((lcHoraAlta == "SI") || (lcHoraAlta == "si") )&& ((lcTipoVehiculo == "AUTOMOVIL") || (lcTipoVehiculo == "automovil")) && (liNumeroPasajeros >= 3))
De todas formas, ese if me parece muy complicado y que puede optimizarse:
- Pasando los strings a mayúsculas antes del if te evitas hacer dos comparaciones.
- Si la única diferencia entre esos dos ifs es el número de pasajeros, puedes hacer un if anidado.
Código C++:
Ver original#include <algorithm>
//...
transform
(lcHoraAlta.
begin(),lcHoraAlta.
end(),::toupper); // pasar horaAlta a mayusculatransform
(lcTipoVehiculo.
begin(),lcTipoVehiculo.
end(),::toupper); // pasar lcTipoVehiculo a mayuscula
if (lcHoraAlta == "SI" && lcTipoVehiculo == "AUTOMOVIL")
{
if (liNumeroPasajeros >= 3)
{
printf("\nN%c paga peaje.\n", 162); }
else
{
printf("\nTarifa: EUR$30.\n"); }
}
Si no puedes usar la función transform, puedes hacerte tu propia función que pase un string a mayúsculas (no es díficil, es hacer un for que recorra el string y que vaya aplicando el método toupper() a cada caracter).
Hola, gracias por ayudarme.
El problema se mantiene, corres el programas e ingresas los datos y el programa se finaliza, no lee ninguna condicion.
Otra pregunta: por qué usar en los IF == "si", debería ser 'si' o nó?
Espero puedas responderme ambas, realmente lo necesito.
Aquí screenshot: