lekcja 30. zadanie domowe
Ostatnio zmodyfikowano 2013-02-03 22:42
grzegorz198 Temat założony przez niniejszego użytkownika |
lekcja 30. zadanie domowe » 2013-02-03 21:18:35 Wyobraź sobie, że masz pięć pudełek. W każdym pudełku możesz umieścić jedną liczbę całkowitą z przedziału od 1 do 3 włącznie. Napisz program, który wypisze na ekranie wszystkie możliwe kombinacje w jaki sposób można zapełnić pudełka. mój kod to: #include <iostream> int main() { int i = 1; int j = 1; int k = 1; int l = 1; int m = 1; do { std::cout << i; if( j == 3 ) { i++; }; do { std::cout << j; if( k == 3 ) { j++; }; do { std::cout << k; if( l == 3 ) { k++; }; do { std::cout << l; if( m == 3 ) { l++; }; do { std::cout << m; m++; std::cout << std::endl; break; } while( m <= 3 ); } while( l <= 3 ); } while( k <= 3 ); } while( j <= 3 ); } while( i <= 3 ); }
prawie działa, bo widzę, że pokazują sie kolejne liczby z tego co udało się zarejestrować moim oczom, tyle, że nie chce się zatrzymać. Z góry dziękuję. oczywiście proszę o pomoc :) |
|
Schulze13 |
» 2013-02-03 21:48:48 Udało mi się stwierdzić, iż w złym miejscu umieściłeś wypisywanie liczb i,j,k,l (chyba). Ja umieściłem wszystko w ostatniej pętli for(;;), ogólnie wszystkie pętle zamieniłem na for(;;). Jak dla mnie sprawują się lepiej z czymś takim. Zmień też postinkrementacje na preinkrementacje. Oczywiście mogę się mylić we wszystkim, ale u mnie działa. Podsumowując: for( int i = 1; i <= 3; ++i ) { (...) for( int m = 1; m <= 3; ++m ) { std::cout << i; std::cout << j; std::cout << k; std::cout << l; std::cout << m; std::cout << std::endl; } (...) }
|
|
Mrovqa |
» 2013-02-03 21:50:51 break opuszcza tylko tę pętle/switcha, w której jest bezpośrednio użyty. /edit: widzę, iż autor sobie już poradził :)@down Faktycznie, mój błąd. Wczoraj widać już przestałem wieczorem myśleć. |
|
DejaVu |
» 2013-02-03 22:42:28 @up: to nie autor dał 'rozwiązanie' |
|
« 1 » |