Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[lekcja 30] Zagnieżdżanie pętli. (zadania)

Ostatnio zmodyfikowano 2014-09-25 15:51
Autor Wiadomość
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.
C/C++
#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. xD

PS. 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)
P-117474
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.
P-117478
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.
P-117490
michal11
» 2014-09-25 09:42:19
std::cout << i + 1 << ' ' << j + 1 << ' ' << k + 1 << std::endl;
P-117493
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.
P-117496
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.
P-117504
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.
P-117506
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
P-117509
« 1 » 2
  Strona 1 z 2 Następna strona