Program symulujący zegar - pętla nie chce się inkrementować

0

Witam,
Chcę napisać prosty zegar, który będzie wyświetlał wszystkie godziny w formacie gg:mm, zaczynając od wskazanej godziny, do końca dnia czyli godziny 23:59; Później będę robił z tą funkcją inne rzeczy ale na razie mam bardzo podstawowy problem tj. funkcja wyświetla minuty do końca godziny. Funkcja działa na zasadzie zagnieżdżonych pętli i wygląda na to, ze pierwsza pętla nie chce się inkrementować. Nie rozumiem dlaczego

 
#include <iostream>
using namespace std;
const int hour = 24;
const int minutes = 60;

void clock (int h, int mi)
{
    int i = h;
    int m=mi + 1;
    for (i ; i <hour; i ++)
    {
        for (m ; m<minutes; m++)
        {
            if (i<=9 && m<=9)
                cout<<0<<i<<":"<<0<<m<<endl;
            else if (i<=9 && m>9)
                cout<<0<<i<<":"<<m<<endl;
            else if (i>9 && m<=9)
                cout<<i<<":"<<0<<m<<endl;
            else
                cout<< i<<":"<<m<<endl;
        }
        if (m==59)
            m = 0;        
    }

}



int main ()
{
    int start_mi;
    int start_ho;
    cin>>start_mi>>start_ho;
    clock (start_mi,start_ho);
    return 0;
}
5
#include <iostream>
#include <iomanip>
using namespace std;

void clock(int hour, int minute) {
	for(auto hour_i = hour; hour_i < 24; ++hour_i) {
		for(auto minute_i = (hour_i == hour? minute : 0); minute_i < 60; ++minute_i) {
			cout << setw(2) << setfill('0') << hour_i << ":" 
			     << setw(2) << setfill('0') << minute_i << endl;
		}
	}
}

int main() {
	int hour, minute;
	cin >> hour >> minute;
	clock(hour, minute);
	return 0;
}

http://ideone.com/ckf3hr

2

Niepotrzebnie kombinujesz, bo to jest dużo prostsze:

#include <iostream>
using namespace std;

void show_clock(unsigned startHour, unsigned startMin)
{
    unsigned endMin = 60;
    unsigned endHour = 24;

    for(unsigned i = startHour; i < endHour; ++i)
    {
        for(unsigned j = startMin; j < endMin; ++j)
        {
            cout << ((i < 10) ? "0" : "") << i << ":" << ((j < 10) ? "0" : "") << j << endl;
        }
        startMin = 0;
    }
}

int main()
{
    show_clock(12,59);
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1