PDA

View Full Version : [C++] Problema con While


zergling
05-04-2008, 20:13
Ciao a tutti,
Sto scrivendo un programma che sia in grado di convertire l'ora in 24h in 12h... Mi sono creato 3 funzioni e tutto fila liscio fino a quando devo eseguire il while loop in main :(
Come faccio ad useguire il while loop che mi consenta di richiamare le mie tre funzioni? E' possibile?
Ciao e grazie :D

#include <iostream>

using namespace std;

void input(int& hour, int& minutes);
char conversion(int& hour, char& day_night);
void output(int hour, int minutes, char day_night, char& answer);

int main()
{
int hour, minutes;
char day_night, answer;

do
{
input(hour, minutes);
conversion(hour, day_night);
output(hour, minutes, day_night, answer);
}while((answer == 'y')||(answer == 'Y'));

return 0;
}
void input(int& hour, int& minutes)
{
bool check = false;
while (((hour >24) || (hour < 0)) || ((minutes < 0)||(minutes > 59)))
{
if (check == true)
{
cout << "\nEnter minutes: ";
cin >> minutes;
if((minutes > 60) || (minutes < 0))
{
cout << "ERROR! Minutes can not be " << minutes << endl;
continue;
}
}

else
{
cout << "Enter hour in 24h notation: ";
cin >> hour;

if((hour >24) || (hour < 0))
{
cout << "ERROR! Hour can not be " << hour << endl;
continue;
}
else
{
check = true;
cout << "\nEnter minutes: ";
cin >> minutes;
}

if((minutes > 60) || (minutes < 0))
{
cout << "ERROR! Minutes can not be " << minutes << endl;
continue;

}
}
}
}

char conversion(int& hour, char& day_night)
{
if((hour >=13) && (hour <=23))
day_night = 'p';

else if (hour == 24)
day_night = 'a';

else
day_night = 'a';

if(hour > 12)
hour = hour -12;

return hour;
}

void output(int hour, int minutes, char day_night, char& answer)
{
cout << "\nThe time in 12H notation is: ";

if (day_night == 'p')
cout << hour << ":" << minutes << " " << "P.M" << endl;
else
cout << hour << ":" << minutes << " " << "A.M" << endl;

cout << "\nWould you like to run the program again? (y/n)";
cin >> answer;
}

zergling
06-04-2008, 22:27
Qualcuno e' in grado di aiutarmi per piacere?

vizzz
06-04-2008, 22:29
Qualcuno e' in grado di aiutarmi per piacere?

metti il codice nel tag CODE, cosė si capisce poco.

zergling
07-04-2008, 00:07
Cool Non conoscevo la funzione TAG
GRAZIE per avermi risposto :D


#include <iostream>

using namespace std;

void input(int& hour, int& minutes);

char conversion(int& hour, char& day_night);

void output(int hour, int minutes, char day_night, char& answer);

int main()

{

int hour, minutes;

char day_night, answer;



do

{

input(hour, minutes);

conversion(hour, day_night);

output(hour, minutes, day_night, answer);

}while((answer == 'y')||(answer == 'Y'));



return 0;

}

void input(int& hour, int& minutes)

{

bool check = false;

while (((hour >24) || (hour < 0)) || ((minutes < 0)||(minutes > 59)))

{

if (check == true)

{

cout << "\nEnter minutes: ";

cin >> minutes;

if((minutes > 60) || (minutes < 0))

{

cout << "ERROR! Minutes can not be " << minutes << endl;

continue;

}

}



else

{

cout << "Enter hour in 24h notation: ";

cin >> hour;



if((hour >24) || (hour < 0))

{

cout << "ERROR! Hour can not be " << hour << endl;

continue;

}

else

{

check = true;

cout << "\nEnter minutes: ";

cin >> minutes;

}



if((minutes > 60) || (minutes < 0))

{

cout << "ERROR! Minutes can not be " << minutes << endl;

continue;



}

}

}

}



char conversion(int& hour, char& day_night)

{

if((hour >=13) && (hour <=23))

day_night = 'p';



else if (hour == 24)

day_night = 'a';



else

day_night = 'a';



if(hour > 12)

hour = hour -12;



return hour;

}



void output(int hour, int minutes, char day_night, char& answer)

{

cout << "\nThe time in 12H notation is: ";



if (day_night == 'p')

cout << hour << ":" << minutes << " " << "P.M" << endl;

else

cout << hour << ":" << minutes << " " << "A.M" << endl;



cout << "\nWould you like to run the program again? (y/n)";

cin >> answer;

}

zergling
07-04-2008, 16:00
Hmmm che faccio ci rinuncio oppure qualcuno sa come aiutarmi?