Wpis z mikrobloga

#programowanie #cpp

Murki problem. Robię teraz program, który ma mi sprawdzać kolejne liczby czy są podzielne przez 3 bez reszty, jeżeli tak to ma dodawać liczbę 3 do siebie. NP. Ciąg od 1 do 6:
1,2,3,4,5,6 - w nim dzieli się przez 3 tylko 3 i 6 więc powinienem dostać wynik 6 (bo 3 + 3).
No i jest ok, to działa, ale dla ciągu nie dłuższego niż 18 liczb ( ͡° ʖ̯ ͡°) jak zrobię od 1 do 17 jest ok, od 20 do 37 jest ok, ale od 1 do 18 pojawia się komunikat, że program przestał działać... Ktoś by coś podpowiedział?
  • 13
@davidero69: protip dla Ciebie.
pytając kogokolwiek w sieci o pomoc z programowaniem zawsze:
a) wklej kod na pastebin.com i podeślij linka
b) wklej dokładny komunikat błędu.
w ten sposób zaoszczedzisz czas swój i ludzi, którzy wtedy dopiero będą mogli Ci pomóc. Z pustego to wiesz... Dobranoc
@davidero69: Powróżmy z magicznej kuli...

To co napisał kamil062. Skoro nie działa dla ciągów liczb o długości > 18 to jedynym logicznym wyjaśnieniem jest że twoja najpewniej tablica jest zadeklarowana na sztywno np ciąg[18]. Zmień tym na dynamiczny, deklaruj wielkość tablicy przed załadowaniem ciągu.

Ewentualnie skoro to zadanie ma sumować wpisywane liczby podzielne przez 3 można to machnąć bez tablic w pętli:
(pisze z pamięci i c++ mi przyrdzewiał więc możliwe
@grubson234567: @dupasmoka: @kamil062: @qjot:

Panowie kod wam dam za jakiś czas bo muszę wyjść. Zawołam. Ale z tego co widze to w dev cpp gdy kompilator był ustawiony na 32bit cośtam to ciąg 18 liczbowy się zawieszał, jak zmieniłem na 64 bit to zaczął działać aż do 50 liczb. Coś chyba z tym dev musi byc.

Mam windę xp home 64 bit. Jakiś inny kompilator polecicie mały co
@davidero69: No i jak byś powiązał ten fakt, że zasugerowano Ci, że pewnie wychodzisz za "jakiś zakres" z tym, że zwiększenie "zakresu" inta (czyli z reguły również wskaźników) z 32 na 64 bity spowodowało "obsłużenie" większej ilości liczb?

Podpowiem: to nie w kompilatorze leży problem, a w programiście.
@davidero69: masz błąd w 41 linijce. Po podaniu pierwszych parametrów zmienna i w for ma wartość 0, a dalej tworzysz tablicę dwuwymiarową o wymiarach [0][x]. Po zmianie na int odc[i+1][x]; mi działa bez zarzutu.