Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

c++ SPOJ - program dziwne zachowanie

adam19_91 01 Cze 2016 19:53 618 2
  • #1 01 Cze 2016 19:53
    adam19_91
    Poziom 10  

    Witam wszystkich próbuję rozwiązać zadanie z tej strony -> http://pl.spoj.com/problems/BFN1/

    W związku z tym udało mi się napisać taki oto program:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Problem w tym, że wynik jego działania jest dla mnie niezrozumiały. Tzn., gdy sprawdzam wynik w pętli wszystko się zgadza a po wyjściu z niej pokazuje jakieś śmieci. Żeby jeszcze skomplikować to problem pojawia się dla niektórych danych wejściowych a dla innych program działa jak najbardziej poprawnie. Siedzę już nad tym trochę i zupełnie nic mi do głowy nie przychodzi. Mógłby ktoś na to rzucić okiem? Pozdrawiam

    0 2
  • #2 02 Cze 2016 14:17
    szelus
    Specjalista - Mikrokontrolery

    A ile, maksymalnie, możesz zapisać elemntów do tablicy tab i co się stanie, jak spróbujesz więcej?
    p.s. Po to jest C++, żeby nie używać "tablic w stylu C".

    0
  • #3 02 Cze 2016 19:25
    adam19_91
    Poziom 10  

    Poprawiłem program tak by tworzona była dynamiczna tablica ale nie przyniosło to żadnego efektu. Nie potrafię zrozumieć jakim cudem przed spełnieniem warunku w pętli while wynik jest prawidłowy np. dla liczby 28 daje 121 a po wyjściu z pętli wynik dla tej samej liczby to 117251 niby też palindrom ale za duży. Sprawdzałem dla ostatniej iteracji pętli wynik to 121 a po nim jest tylko sprawdzenie warunku pętli. Po wyjściu z pętli wynik to 117251. O co chodzi?


    Poniżej poprawiony kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [godziny] 20 [minuty]:

    problem rozwiązany należało tylko zerować wartość liczba w funkcji doZmiennej(). Bez tego przed każdą iteracją stara wartość dodawała się do nowej.

    Pozdrawiam

    0