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 » |