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ł?
@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: Nie mamy kodu to ciężko powiedzieć ale tak w ciemno to pewnie przy obliczeniach przekraczasz zakres jakiejś zmiennej albo coś w tym stylu i ci się wykrzacza.
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 ze zrobie
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.
@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.
co by tam źle było. Pragną nadmienić iż jestem n00bem i początkującym. Wiem, że to pewnie da się zrobić w kilku linijkach, ale no. No i ten program to rozbudowana już wersja o podzielność przez 5 i 10 dodatkowo. Jak przez 3 to jest punkt 3, jak 5 to 5, jak 10 to 10, jak 30 to 3x5x10
@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.
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ł?
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
3 * std::count_if(begin(arr), end(arr), [](int x){return x%3==0;});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 ze zrobie
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
Podpowiem: to nie w kompilatorze leży problem, a w programiście.
KOD: http://pastebin.com/neBUsGDR
co by tam źle było. Pragną nadmienić iż jestem n00bem i początkującym. Wiem, że to pewnie da się zrobić w kilku linijkach, ale no. No i ten program to rozbudowana już wersja o podzielność przez 5 i 10 dodatkowo. Jak przez 3 to jest punkt 3, jak 5 to 5, jak 10 to 10, jak 30 to 3x5x10