Cita:  
					Iniciado por amchacon  
  Te faltan varios parentesis ahí, creo que lo que quieres decir es:
   
Código C++:
Ver original- if (((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 mayuscula
- transform (- 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: 
