Cześć mógłby ktoś zerknąć na mój kod https://ideone.com/cqYsSh12 wszystkie testy które sprawdzałem działają ideone też nie zwraca żadnego błędu.
czy ty chociaż sprawdziłeś wyniki, które twój program dał na ideone.com6 ? - czy też piszesz jedynie na podstawie wiary w dobre działanie programu ?
przeczytaj uważnie treść zadania a potem popatrz na wyniki programu
ok wiem na czy polega problem skupiłem się na przekazanych danych i ich sortowaniu a nie sprawdzeniu odległości od środka przekazanego pkt. jutro ponownie podejdę do tematu. Poprawiłem program aby sortował przekazane pkt. na podstawię odległości ale nadal nie ma AC nie wiem co jeszcze mogłem pominąć “odległość” w stdout wstawiłem dla sprawdzenia czy wszystko jest ok i usunąłem przed sprawdzeniem kodu
Zadanie zaliczone
Twój sposób liczenia odległości jest straszny.
Powiedz co dostaniesz dla danych
A 0 -1
B -2 0
C 0 -4
Nawiasem pisząc w tym zadaniu wystarczy operowanie na wartościach całkowitych.
Dlaczego? Tego już nie wyjaśnię
Nie ma to związku z faktem, że żadne dwa punkty nie leżą w jednej odległości
Gratuluję zaliczenia.
Dzięki korkirw poprawiłem a raczej skróciłem sposób liczenia bo rzeczywiście po wprowadzeniu zestawu danych który podałeś wychodziły głupoty. Zadanie zaliczone.
Nawiasem pisząc w tym zadaniu wystarczy operowanie na wartościach całkowitych. Dlaczego? Tego już nie wyjaśnię
Mogę się mylić ale wydaj mi się że chodzi Ci o zapis w zadaniu który mówi:
Żadne 2 punkty nie leżą w tej samej odległości od środka układu współrzędnych.
Cześć - potrzebuję pomocy przy znalezieniu błędu w kodzie (program napisany w Javie). Gdyż sam go nie mogę znaleźć - SPOJ odrzuca rozwiązanie, komplilator (IntelliJ) pokazuje wszystko poprawnie.
Trochę kontekstu - to zadanie już rozwiązałem jakiś czas wcześniej w C++, uczę się Javy aby mieć szansę na staż w jednej firmie. ‘‘Jedyne’’ co zrobiłem to ‘‘przetłumaczyłem’’ kod z C++ na Javę - pilnowałem aby endline’y były tam gdzie powinny, przerwy itp itd.
Przeprowadzałem testy na wielu zestawach danych i program sortuje za każdym razem poprawnie. Nie rozumiem z czym SPOJ ma problem niestety. Podam kod z C++ z którego ‘‘tłumaczyłem’’ (i który został zaakceptowany przez SPOJ) oraz kod w Javie, z którym SPOJ ma problem.
Z góry dziękuję za pomoc.
- Nie powinno się dołączać działających kodów (linków do takich kodów).
- Kod, na którym się wzorujesz, jest według mnie strasznie rozwleczony.
Mój kod ( w ogólnych założeniach dość podobny, też tworzę klasę Punkt) ma 70 (w dodatku sam zaimplementowałem sortowanie), a Twój ma ponad 150 linii.
A z całą pewnością nie można nazwać mojego kodu wzorcowymi, jest wiele lepszych rozwiązań. Ciekawy jestem co inni sądzą o tym kodzie.
Myślę, że łatwiej byłoby Ci przetłumaczyć na Javę prostszy kod.
Dzięki za odpowiedź
-
Masz rację, jednakże chciałem załączyć oba kody - może ktoś bardziej doświadczony ode mnie by coś wyłapał, coś co by wskazywało czemu jeden kod działa a drugi nie.
-
Zgodzę się przy rozwleczeniu, przy C++ trochę ''na ślepo" dawałem się prowadzić za rączkę przez Visual Studio który zachęcał do wypełniania konstruktorów, getterów i setterów poza klamrami klasy (głównie to tak rozwlekło kod). Ale jak SPOJ przyjmuje to już tak zostawiłem. Jak mi się będzie chciało to wrzucę tam bardziej kompaktowy kod. Także są settery niepotrzebne przy kodzie w C++ (przeciążony konstruktor już je ma, wystarczyłoby zamiast nowaX = x używać czegoś w stylu this.x = x jak zrobiłem w kodzie Java - jak się da).
Tak czy inaczej dzięki za sugestie.
EDIT: Postanowiłem kod skrócić już teraz, skrócił się do 100 linii.
witam, zerknąłby ktoś na kod ?
https://ideone.com/Mpgqfo20
Zerknąłem, no i trochę błędów tam jest.
.
.
.
.
.
===================================
Jeżeli dostajesz WA [wrong answer - błdna odpowiedź], to natychmiast powinieneś, ze skupienie i zrozumieniem jeszcze raz zajrzeć do treści zadania:
nazwa x y
gdzie nazwa jest unikalnym dla każdego testu ciągiem co najwyżej 10 liter alfabetu łacińskiego,
10 [słownie dziesięć] != 1 [słownie jeden]
PS
dokleiłeś siędo wątku, ale warto także do niego zajrzeć.
W funkcji sortowanie_babelkowe jest parametr int n natomiast wewnatrz funkcji jest deklaracja char n
Moze to wprowadzac zamieszanie.
Jeszcze obliczanie odleglosci punktu.
moze moj test jest troche zlosliwy i moze sedzia nie ma tego typu testu.
wejscie
1
3
A 0 0
C 1 1
B 0 -1
wyjscie
A 0 0
B 0 -1
C 1 1
math.h jest biblioteka typowa dla zwyklego C