Ciao a tutti, sto studiando il C++ a scuola ed oggi abbiamo cominciato le strutture iterative, precisamente while.
La traccia dice questo
Un parcheggio ha la tariffa di € 1 per la prima ora di sosta e di € 0,50 per ogni ora successiva.
Conoscendo l'orario di entrata e di uscita di un'autovettura (espresso in ore e minuti), emetti uno scontrino con l'ora di entrata, l'ora di uscita, il tempo di durata della sosta e la relativa spesa.
Questo è il codice, funziona tutto bene MA se l'ora di entrata è maggiore a quella di uscita il programma da un orario sbagliato, so già che la formula e sbagliata ed è per questo che sto chiedendo aiuto.
Ecco il codice:
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
float entrata, uscita, tempo, orario, spesa;
const float prezzo = 0.50;
const int giorno = 24;
cout<<"Inserisci l'ora di entrata (ora e minuti): ";
cin>>entrata;
cout<<"Inserisci l'ora di uscita (ora e minuti): ";
cin>>uscita;
do
{
if(entrata<uscita)
{
tempo=uscita-entrata;
if(tempo<=1)
{
spesa=1;
}
else
{
spesa=tempo*prezzo+1;
}
}
else
{
tempo=entrata-uscita; //parte sbagliata
spesa=tempo*prezzo+1;
}
}
while (entrata>giorno || uscita>giorno);
cout<<"La spesa e' di "<<spesa<<" euro, la sosta e' durata dalle "<<entrata<<" fino alle "<<uscita<<" ed il tempo di durata della sosta e' di "<<tempo<<" ore/a"<<endl;
system("pause");
return 0;
}
Grazie in anticipo.