Poziom 3 lekcja 30 zadanie 2
Ostatnio zmodyfikowano 2017-01-21 15:01
Damfled Temat założony przez niniejszego użytkownika |
Poziom 3 lekcja 30 zadanie 2 » 2017-01-21 12:32:10 Treść zadania : Wyobraź sobie, że masz pięć piłek i chcesz wylosować trzy z nich. Napisz program, który wypisze na ekranie wszystkie możliwe kombinacje piłek jakie można wylosować. Ma wyświetlić: 123,124,125,134,135,145,234,235,245,345. Taki mam kod ( jeszcze nie skończony )wyświetla 146 którego nie powinno być. Co robię źle ? :) #include <iostream> int main() { int raz = 1; int dwa = 2; int trzy = 3; for( int i = 1; i <= 2; i++ ) { for( int b = 1; b <= 2; b++ ) { for( int a = 1; a <= 3; a++ ) { if( raz == dwa == trzy ) break; if( trzy == 6 ) break; if( i == 2 ) { trzy += 1; std::cout << raz << " " << dwa << " " << trzy << std::endl; continue; } std::cout << raz << " " << dwa << " " << trzy << std::endl; trzy += 1; } if( b == 1 ) { dwa += 1; trzy = 4; } } } return 0; }
|
|
karambaHZP |
» 2017-01-21 13:33:45 Użyj debuggera i prześledź jak zmieniają się wartości poszczególnych wypisywanych zmiennych.
Podpowiedź: Każda kolejna zagnieżdża pętla powinna być mieć licznik zainicjalizowany licznik o jeden większy od pętli zewnętrznej. Wystarczy wypisać licznik każdej z pętli, w najgłębiej zagnieżdżonej. |
|
Damfled Temat założony przez niniejszego użytkownika |
» 2017-01-21 15:01:11 Dzięki za pomoc, chociaż nie wiem jak używać debuggera, po jeszcze dłuższej analizie kodu zrozumiałem że postawiłem złe warunki w if ach lub nie podałem wszystkich oraz źle używałem break, continue . Czasami potrzebna rada czy jestem na dobrej drodze. :) Po części zacząłem bawić się z std::rand() założyłem że w złą stronę idę, chociaż tutaj nie miałem kontroli co będzie wylosowane. |
|
« 1 » |