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

[C++] Zagnieżdżanie pętli...

Ostatnio zmodyfikowano 2015-12-25 14:55
Autor Wiadomość
Euvarios
Temat założony przez niniejszego użytkownika
[C++] Zagnieżdżanie pętli...
» 2015-12-25 10:42:45
Witam, czytałem wczoraj w kursie o zagnieżdżaniu pętli i jako, że wydawało mi się, że temat rozumiem postanowiłem zrobić do niego zadanie. Mianowicie: "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". Krótko mówiąc miałem napisać program, który znajdzie i wypisze wszystkie kombinacje 5 cyfrowego kodu o zakresie liczb 1/3 włącznie. Chwilę myślałem i w końcu stworzyłem to:

C/C++
#include <iostream>

int main()
{
    for( int a = 1; a <= 3; a++ )
    {
        int b;
        int c;
        int d;
        int e;
       
        if( b == 3 )
             b = 1;
       
        for( b = 1; b <= 3; b++ )
        {
            if( c == 3 )
                 c = 1;
           
            for( c = 1; c <= 3; c++ )
            {
                if( d == 3 )
                     d = 1;
               
                for( d = 1; d <= 3; d++ )
                {
                    if( e == 3 )
                         e = 1;
                   
                    for( e = 1; e <= 3; e++ )
                         std::cout << a << ", " << b << ", " << c << ", " << d << ", " << e << std::endl;
                   
                }
            }
        }
    }
   
    return 1;
}

Mimo, że wszystko działa bez zarzutów to jestem ciekawy co można zrobić, żeby jeszcze bardziej go skrócić i sprawić by był bardziej przejrzysty... Liczę na wasze sugestie...
P-142335
carlosmay
» 2015-12-25 13:55:39
C/C++
#include <iostream>
using std::cout;
using std::endl;
int main()
{
    for( int a = 1; a <= 3; a++ ) {
        for( int b = 1; b <= 3; b++ ) {
            for( int c = 1; c <= 3; c++ ) {
                for( int d = 1; d <= 3; d++ ) {
                    for( int e = 1; e <= 3; e++ ) {
                        cout << a << b << c << d << e << endl;
                    } // for e
                } // for d
            } // for c
        } // for b
    } // for a
    return 0;
}
 
P-142343
Euvarios
Temat założony przez niniejszego użytkownika
» 2015-12-25 14:55:14
Właśnie uświadomiłem sobie, że jestem idiotą... Nie wiem skąd mi przyszło do głowy by po zakończeniu pętli tworzyć warunek zerujący zmiany jakie zaszły na danej zmiennej... Przecież za każdym razem jak wchodzimy od nowa do danej pętli wartość np "a" jest ponownie ustawiana na tą zapisaną w warunkach pętli...
P-142345
« 1 »
  Strona 1 z 1