Dev - C++ - Ciclo IF no funciona!!!

   
Vista:

Ciclo IF no funciona!!!

Publicado por Jose Rodriguez rodriguez.jose2005@gmail.com (2 intervenciones) el 20/03/2011 03:32:33
Amigos (as):
Soy nuevo en esto: Estoy en el Básico, asi que me mandaron una tarea y la hice de esta manera, pero aunque me funcionó al principio. Cuando la cargue nuevamente en mi máquina para probarlo ahora no me funciona el ciclo IF. Me explico: Si la variable T1 y T2 de cadenas son iguales (AM o PM) entonces realiza la operacion señalada, pero SI NO son iguales entonces realiza la otra operación siguiente. Resulta que no importa lo que meta, igual aplica el SINO!!!. Que esta malo? S.O.S.
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>

using namespace std;
int main()
{
int h1,h2,m1,m2,ht,mt,segundosFinales,segundosIniciales,segundosTotales,segaux1,segaux2;
segundosFinales=0; segundosIniciales=0; segaux1=0; segaux2=0;h1=0;h2=0;m1=0;m2=0;ht=0;mt=0;
float montopagar;
float c=1.1, f=0.55;
char T1,T2;
cout << "Ingrese la hora inicial y final en el formato HH:MM:AM ó HH:MM:PM" <<endl ;
cout << "Ingrese la hora inicial: " <<endl;
cin>>(h1);
cout<<"Ingrese los minutos: "<<endl;
cin>>(m1);
cout<<"Ingrese AM o PM según sea el caso: "<<endl;
cin>>(T1);
cout<< "La Hora de entrada es: "<<h1<<":"<<m1<<":"<<T1<<"\n"<<endl;
//Ahora las horas de salida
cout <<"Ingrese la hora de Salida: "<<endl;
cin>>(h2);
cout<<"Ingrese los minutos: "<<endl;
cin>>(m2);
cout<<"Ingrese AM o PM segun sea el caso: "<<endl;
cin>>(T2);
cout<<"La Hora de salida es: "<<h2<<":"<<m2<<":"<<T2<<"\n"<<endl;

if (T2=T1)
{
segundosFinales=((h2*3600)+(m2*60));
segundosIniciales=((h1*3600)+(m1*60));
segundosTotales=(segundosFinales-segundosIniciales);
}
else
{
segundosFinales=((43200+(h2*3600))+(m2*60));
segundosIniciales=((h1*3600)+(m1*60));
segundosTotales=(segundosFinales-segundosIniciales);
}

ht=(segundosTotales/3600);
segaux1=(ht*3600);
segaux2=(segundosTotales-segaux1);
mt=(segaux2/60);
if (mt>30)
{
montopagar=((ht*c)+(f));
}
else
{
montopagar=(ht*c);
}

cout<< "\n El tiempo de estadía en el estacionamiento es: "<<ht<<":"<<mt<<endl;

cout<< "\n El monto a pagar por concepto de estacionamiento es: "<<montopagar<<endl;


getch();

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ciclo IF no funciona!!!

Publicado por Capitan Kirk (44 intervenciones) el 24/03/2011 09:27:29
En C/C++, una comparación de igualdad se hace empleando == (dos signos igual consecutivos). En tu IF haces

if (T2 = T1)

con lo que no estás comparando nada, en realidad lo que estás haciendo es asignar a T2 el valor de T1. El valor booleano de esta asignación es TRUE, dado que una asignación de valores entre variables tiene éxito siempre, salvo que sean de tipos incompatibles. Por eso se te ejecuta siempre lo que sigue al IF y nunca la parte del else.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar