49 / 93
Mar 2018

Poprawiony kod, aczkolwiek SPOJ wyświetla błąd SIGSEGV. Odpowiedzi wydają się być prawidłowe dla przeprowadzonych testów

Ktoś wie dlaczego pojawia się ten błąd segmentacji? Pozdrawiam

tak, ja wiem - co nie znaczy, że napiszę :slight_smile:

bo to przecież jest proste - robimy na ideone.com14 test referencyjny (czyli ten z 98) i wiemy dla jakiej wartości mamy błąd, potem wystarczy spojrzeć w kod

i uwagi ogólne:

  1. pisząc program, należy pamiętać, że prawdopodobieństwo wystąpienia błędu jest w najlepszym wypadku proporcjonalne do jego długości, a zwiększa się gwałtownie w przypadku nadużywania instrukcji if :slight_smile:

  2. nadmierna oszczędność nie popłaca, rozrzutność też :slight_smile:

Niestety, po usunięciu SIGSEGV jest WA

Nie napiszesz ponieważ… ? Chociaż nakieruj mnie dla jakiej wartości pokazuje błąd, od niedawna uczę się C++ i mogę czegoś nie zauważyć. Robię test na ideone mojego programu, wrzucam do stdin test 98 i pokazują mi się outputy do sto włącznie, reszty brak.

Ok skoro znalazłeś błąd SIGSEGV wiesz jak naprawić błąd z WA?

skoro sto jest, a następnej wartości nie ma, to chyba oczywiste :slight_smile:

a WA nie miałem czasu się zająć, może po 22

Udało się odnaleźć błędy. Co prawda SIGSEGVa już nie ma, jest tak jak mówiłeś… błędna odpowiedź.

Poprawiony kod

Co może być nie tak? :roll_eyes:

gratulacje :slight_smile:

pousuwaj linki do twojego programu, niech inni też samodzielnie rozwiązują

9 months later

Witam, ja także mam problem z tym zadaniem. Przechodzi wszystkie podane wyżej testy, a dostaję WA.
Proszę o jakąś wskazówkę albo test, którego nie przechodzi mój program.
Mój kod: tu był kod

usuń link do kodu, jest zbyt bliski AC :slight_smile:

podpowiedź wysyłam na priv

4 months later

witam,
na ideon wszystko śmiga a wywala mi błąd kompilacji ?? nie widzę błędu…

jeżeli klikniesz na tekst błąd kompilacji - to zobaczysz, co chce od ciebie kompilator
zaś problem bierze się stąd, że ustawienia kompilatora C++ 4.3.2 są nieco inne na spoj-u i ideone.com5

prog.cpp:307: error: integer constant is too large for ‘long’ type
niestety nie wiem i nie bardzo rozumiem :frowning:

Zobacz, czy zamiana wszystkich: 1000000000000
na 1000000000000ll załatwi sprawę. [ll == dwa razy mała literka eL]

PS
307 - to numer błędnej lub następnej linii

Właśnie sprawdziłem, możesz też - bez zmian w kodzie - użyć nowszego kompilatora c++ lub c++14(gcc 6.3) zamiast c++(gcc 4.3.2)

1 month later

Hej, mam problem z tym zadaniem, sprawdzałem literówki chyba wszystko gra, spacje też podobno nie robią problemu.
Tu mój kod z przykłądowymi testami, dla danych z zadania też daje rade https://ideone.com/sOe5Dr35 (na ideone na koncu wypisuje dwa razy bln w konsoli sie tak nie dzieje, moze to jest przyczyna). Pzdr :slight_smile:

Tak, nadmiar spacji.

Po prostu 13 jest liczbą pechowa i po prostu użyj w swoim teście mniejszej liczby :wink: [np zmień w tym swoim teście TYLKO 13 na 12 i zobacz co się stanie - czy nie pozbędziesz się w ten sposób pechachacha … ;-)]

Nie ma znaczenia gdzie testujesz, czasami na konsoli jest nawet wygodniej - ale trzeba to robić i trzeba to robić systematycznie.
Przetestuj od 1 do 20, a potem od 100 do maksymum, ze skokiem *10, tzn:
100
1000
10000
itd

1 month later