R. 30 Zagnieżdżanie pętli - losowanie trzech piłek z pięciu
Ostatnio zmodyfikowano 2018-12-23 20:51
rottingham Temat założony przez niniejszego użytkownika |
R. 30 Zagnieżdżanie pętli - losowanie trzech piłek z pięciu » 2018-12-21 15:45:21 Cześć! Napisałem funkcję losowania trzech piłek z pięciu na wszelkie możliwe sposoby bez powtarzania. Wszystko działa tak jak powinno, ale pytanie czy ten kod jest napisany dobrze? Czy da się to napisać krócej/lepiej będąc na tym etapie kursu? Będę wdzięczny za jakiekolwiek wskazówki! int main() { for( int x = 1; x <= 5; x++ ) { for( int y = 1; y <= 5; y++ ) { for( int z = 1; z <= 5; z++ ) { if(( x != y ) &&( y != z ) &&( y != z ) &&( x != z ) ) cout << x << " " << y << " " << z << endl; } } } }
|
|
YooSy |
» 2018-12-21 16:21:14 Wszystko działa tak jak powinno, ale pytanie czy ten kod jest napisany dobrze? |
Nie jest napisany dobrze, bo nie działa tak jak powinien. |
|
pekfos |
» 2018-12-21 23:38:39 Nie używaj if. Prędzej wpadniesz na poprawne rozwiązanie, jak nie będziesz mieć tego dodatkowego stopnia swobody. for(...;...;...) for(...;...;...) for(...;...;...) std::cout <<...; Wystarczy uzupełnić. |
|
rottingham Temat założony przez niniejszego użytkownika |
» 2018-12-23 17:12:49 Ok, mam to. Dzięki za pomoc Panowie :) Na wstępie się zgubiłem, bo stwierdziłem, że we wszystkich kombinacjach np. piątka też może być na przodzie i uznałem, że jest mały błąd w przedstawionych danych wyjściowych. Ostatecznie napisałem taki kod, który moim zdaniem jest poprawny: for( int x = 1; x <= 3; x++ ) { for( int y =( x + 1 ); y <= 4; y++ ) { for( int z =( y + 1 ); z <= 5; z++ ) cout << x << y << z << endl; } }
|
|
pekfos |
» 2018-12-23 20:51:45 Nawiasy niepotrzebne. Poza tym dobrze że zauważyłeś, że zewnętrzne pętle nie potrzebują działać na pełnym zakresie, bo i tak ostatnie wartości to puste przebiegi. Znacznie lepiej niż naiwne podejście z pierwszego postu ;) Celem tej lekcji nie było pokazanie, że można umieścić pętlę w pętli, bo to akurat powinno być oczywiste. Naklepanie trzech pętli przeszukujących dziedzinę 5 × 5 × 5 jest proste, napisanie sensownego algorytmu już niekoniecznie. |
|
« 1 » |