• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla sprawdzająca powtórzenie liczby

+1 głos
495 wizyt
pytanie zadane 16 stycznia 2016 w C i C++ przez Jonki Dyskutant (8,180 p.)
edycja 16 stycznia 2016 przez Jonki

Program łapie zawiechę na pętli:

int ile = 0;

        for(it = wylosowane_liczby.begin(); it != wylosowane_liczby.end(); it++)
        {
            ++ile;

            *it = rand()%49+1;

            if(ile > 1)
            {
                while(true)
                {
                    for(int u = 1, w = 1; u <= ile; u++)
                    {
                        if(ile > 1 && *it == wylosowane_liczby[u - w])
                        {
                            *it = rand()%49+1;

                            u = 1;
                        }

                        pomocnicza = u;
                    }

                    if(pomocnicza == ile)
                        break;
                }
            }
        }

Cały kod funkcji: http://pastebin.com/BfAaMW3n

Moment zamulenia: http://zapodaj.net/21c4d5e00d609.png.html

Staje na tym napisie i nie rusza dalej.

Tak się zastanawiam i wydaje mi się, że błąd jest gdzieś tutaj: 

*it == wylosowane_liczby[u - w])

np. jak wylosuje drugą liczbę i będzie porównywało z drugim elementem tablicy, a jego jeszcze nie ma, bo 'u' będzie 2, a w = 1, czyli u - w = 1, a ja właśnie do jedynki chcę wpisać wylosowaną liczbę.

1 odpowiedź

0 głosów
odpowiedź 16 stycznia 2016 przez Rogargol Pasjonat (16,610 p.)
Dobra zasada to wstawiac sobie co instrukcje wypisywanie informacji o stanie newralgicznych zmiennych na ekran i oczekiwanie na wcisniecie klawisza. Dzieki temu dowiesz sie w ktorym miejscu petla sie zawiesza.

Podobne pytania

0 głosów
1 odpowiedź 301 wizyt
pytanie zadane 5 stycznia 2020 w C i C++ przez Nabuchadonozor Gaduła (3,120 p.)
+1 głos
3 odpowiedzi 689 wizyt
pytanie zadane 15 stycznia 2021 w C i C++ przez dominiktkocz Nowicjusz (170 p.)
+2 głosów
2 odpowiedzi 824 wizyt
pytanie zadane 25 kwietnia 2022 w Java przez cfaniaczek Nowicjusz (200 p.)

93,776 zapytań

142,732 odpowiedzi

323,384 komentarzy

63,379 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...