Rashmistrz Temat założony przez niniejszego użytkownika |
[lekcja 30] Zagnieżdżanie pętli. (zadania) » 2014-09-24 22:07:44 Pierwszym wypisanym przez ten program kombinacją powinna być kombinacja "1 2 3", jednak tak nie jest i chcę wiedzieć gdzie popełniam błąd sprawdzając kod. #include <iostream> int main() { bool used[ 5 ]; for( short i = 0; i < 5; i++ ) { used[ i ] = true; for( short j = 0; j <= 5; j++ ) { if( used[ j ] ) continue; used[ j ] = true; for( short k = 0; k < 5; k++ ) { if( used[ k ] ) continue; std::cout << i + 1 << ' ' << j + 1 << ' ' << k + 1 << std::endl; } used[ j ] = false; } used[ i ] = false; } return 0; }
//OMG. Wcisnąłem CTRL + S by zapisać post. xDPS. Nie mam pomysłu jak wykonać wypisanie bez powtórzeń kombinacji. (np. jak jest już 1,2,3 to nie może być 3,2,1) |
|
pekfos |
» 2014-09-24 22:19:30 Tablica used jest niezainicjalizowana i w zasadzie niepotrzebna. Do wykonania tego zadania wystarczy tyle zmiennych, co pętli. |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2014-09-25 09:27:10 Pierwszym wypisanym przez ten program kombinacją powinna być kombinacja "1 2 3", jednak tak nie jest i chcę wiedzieć gdzie popełniam błąd sprawdzając kod. |
|
|
michal11 |
» 2014-09-25 09:42:19 std::cout << i + 1 << ' ' << j + 1 << ' ' << k + 1 << std::endl; |
|
pekfos |
» 2014-09-25 10:51:52 Pierwszym wypisanym przez ten program kombinacją powinna być kombinacja "1 2 3", jednak tak nie jest i chcę wiedzieć gdzie popełniam błąd sprawdzając kod. |
|
Umiemy czytać, a ty..? Jaki jest sens poprawiać ci kod, skoro idziesz w złym kierunku..? Nawet jeśli by doprowadzić to do działania, to będzie to znaczący przerost formy nad treścią. Do wykonania tego zadania wystarczy tyle zmiennych, co pętli. |
..cały problem, to nadać im odpowiednie wartości początkowe. |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2014-09-25 13:54:08 Chcę wiedzieć gdzie popełniam błąd, bo według mnie powinno być tak jak myślę, a tak nie jest. Ja nie chcę tego samego błędu popełnić w przyszłości. :F
Jak na razie spróbuję znaleźć sposób z tymi pętlami o którym mówiłeś, pekfos. |
|
kitsss |
» 2014-09-25 14:06:09 Pierwszym ma nie być 1 2 3 tylko 1 1 1 1 1 -> 1 1 1 1 2 -> 1 1 1 1 3 -> 1 1 1 2 1 -> ... -> 3 3 3 3 3 Tak jakby inny system liczbowy, gdzie ostatnią liczbą jest 3 (pamiętaj też, że liczyć w tym zadaniu zaczynamy od 1, a nie od 0)
Ja się tam nie znam, ale skoro tych cyferek(pudełek) jest nie tak dużo(tylko 5), to może po prostu zagnieździć w sobie 5 pętli. Tym sposobem udało mi się to napisać, ale nie chcę robić spoilera. |
|
pekfos |
» 2014-09-25 14:16:00 Pierwszym ma nie być 1 2 3 tylko 1 1 1 1 1 -> 1 1 1 1 2 -> 1 1 1 1 3 -> 1 1 1 2 1 -> ... -> 3 3 3 3 3 Tak jakby inny system liczbowy, gdzie ostatnią liczbą jest 3 (pamiętaj też, że liczyć w tym zadaniu zaczynamy od 1, a nie od 0) |
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ć. Dane jakie powinny zostać wypisywane na ekranie:
1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 |
|
|
« 1 » 2 |