40 / 93
Dec 2017

Cześć. Prosiłbym o pomoc w zlikwidowaniu błędu w moim kodzie

Zrobiłem wyjątek jedynie dla liczby 100000 bo wyswietlal sie napis “sto”. Przy innych liczbach wszystko było tak jak należy (sprawdziłem na tescie j4rooo).

Spoj wypluwa “błędną odpowiedź”. Czy to może chodzić o to że input jest stringiem a nie liczbą?

wyjątek zrobiony dla jednego konkretnego przypadku ?

a jeżeli jest ich więcej niż jeden :slight_smile:

Niestety ten blad pojawia sie gdy liczba dziesiatek i jednosci rowne sa 0. np 100.000, 300.432.234, 987.100.239.
wyswietli : sto… trzysta czterysta trzydziesci dwa tys. dwiescie trzydziesci cztery … dziewiecset osiemdziesiat siedem mln. sto dwiescie trzydziesci dziewiec

Ten wyjatek juz usuwam bo tylko wprowadzał chaos :smiley:

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)