Błąd w kodzie zegarka.
Ostatnio zmodyfikowano 2012-05-01 13:06
Morri Temat założony przez niniejszego użytkownika |
Błąd w kodzie zegarka. » 2012-05-01 10:29:19 Witam dzisiaj trochę mi się nudziło wiec pomyślałem ,że napiszę zegarek. Niestety wystąpił błąd ,gdyż nie wyświetla mi czasy. Byłbym wdzięczny jeżeli wskażecie mi błąd. #include <iostream> using namespace std;
int main() { int g; int m; int s; cout << "Podaj godzine. "; cin >> g; cout << endl; cout << "Podaj minute. "; cin >> m; cout << endl; cout << "Podaj sekunde. "; cin >> s; cout << endl; for( int g; g < 24; g++ ) { for( int m; m < 60; m++ ) { for( int s; s < 60; s++ ) { system( "clear" ); cout << "Jest godzina " << g << ":" << m << ":" << s << endl; if( s == 59 ) { s = 0; } } if( m == 59 ) { m = 0; } } if( g == 23 ) { g = 0; } } system( "pause" ); return 0; }
|
|
m4tx |
» 2012-05-01 11:13:11 cout << "Jest godzina " << g << ":" << m << ":" << s << endl;
Musisz dodać 1 do każdej wartości. W programowaniu liczymy od zera, a użytkownikowi chcesz podać poprawną godzinę. A program nie działa zapewne dlatego, bo nie czekasz sekundy po każdym wykonaniu pętli. |
|
Admixior |
» 2012-05-01 13:06:37 ten kod posiada masakrę błędów: 1. W każdej pętli masz zasłonięcie po kolei zmienne h,m,s for( int g; g < 24; g++ ) { for( int m; m < 60; m++ ) { for( int s; s < 60; s++ ) {
wtedy te zmienne mają losowe wartości. 2. Gdy poprawisz je to wiedz że każda! pętla nigdy się nie skończy. Tzn nigdy ci nie wyjdzie z pętli !nawet sekund więc minuty ci się nigdy nie zwiększą. dlaczego? Looknij na to: i na warunek tej pętli. lepiej w warunku wpisać true, a w if - break; Dla wyglądu i prostoty aplikacji: 1. Jeżeli poprawisz kod to zostanie ci tylko w pętli for s++;,m++; i h++; Więc wg mnie lepiej będzie zastosować pętlę while(1){// instrukcje //s++;} //PS jeżeli nie umiesz jeszcze klas/struktur to tego poniżej nie czytaj 2. Czasami lekko denerwujące jest podawanie która jest godzina więc możesz sobie użyć funkcji GetLocalTime(); SYSTEMTIME czas; GetLocalTime( & czas ); cout << czas.wHour << ':' << czas.wMinute << ':' << czas.wSecond;
i zamiast na własnych zmiennych to pracować na obiektach tej struktury :) |
|
« 1 » |