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

lekcja 30. zadanie domowe

Ostatnio zmodyfikowano 2013-02-03 22:42
Autor Wiadomość
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:

C/C++
#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 :)
P-75676
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:
C/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;
       
       
    }
    (...)
}
P-75679
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ć.
P-75680
DejaVu
» 2013-02-03 22:42:28
@up: to nie autor dał 'rozwiązanie'
P-75687
« 1 »
  Strona 1 z 1