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

Poziom 3 lekcja 30 zadanie 2

Ostatnio zmodyfikowano 2017-01-21 15:01
Autor Wiadomość
Damfled
Temat założony przez niniejszego użytkownika
Poziom 3 lekcja 30 zadanie 2
» 2017-01-21 12:32:10
Treść zadania : 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ć. Ma wyświetlić: 123,124,125,134,135,145,234,235,245,345.
Taki mam kod ( jeszcze nie skończony )wyświetla 146 którego nie powinno być. Co robię źle ? :)
C/C++
#include <iostream>
int main()
{
    int raz = 1;
    int dwa = 2;
    int trzy = 3;
   
    for( int i = 1; i <= 2; i++ )
    {
        for( int b = 1; b <= 2; b++ )
        {
            for( int a = 1; a <= 3; a++ )
            {
                if( raz == dwa == trzy )
                     break;
               
                if( trzy == 6 )
                     break;
               
                if( i == 2 )
                {
                   
                    trzy += 1;
                    std::cout << raz << " " << dwa << " " << trzy << std::endl;
                    continue;
                }
                std::cout << raz << " " << dwa << " " << trzy << std::endl;
                trzy += 1;
            }
           
            if( b == 1 )
            {
                dwa += 1;
                trzy = 4;
            }
        }
    }
    return 0;
}
P-156738
karambaHZP
» 2017-01-21 13:33:45
Użyj debuggera i prześledź jak zmieniają się wartości poszczególnych wypisywanych zmiennych.

Podpowiedź:
Każda kolejna zagnieżdża pętla powinna być mieć licznik zainicjalizowany licznik o jeden większy od pętli zewnętrznej.
Wystarczy wypisać licznik każdej z pętli, w najgłębiej zagnieżdżonej.
P-156739
Damfled
Temat założony przez niniejszego użytkownika
» 2017-01-21 15:01:11
Dzięki za pomoc, chociaż nie wiem jak używać debuggera, po jeszcze dłuższej analizie kodu zrozumiałem że postawiłem złe warunki w
if
ach lub nie podałem wszystkich oraz źle używałem
break, continue
. Czasami potrzebna rada czy jestem na dobrej drodze. :) Po części zacząłem bawić się z
std::rand()
 założyłem że w złą stronę idę, chociaż tutaj nie miałem kontroli co będzie wylosowane.
P-156743
« 1 »
  Strona 1 z 1