2 / 6
Mar 2021

Witajcie,
Mam problem z tym zadankiem (https://pl.spoj.com/problems/FR_09_04/5). Sprawdzałem sobie sporą ilość przypadków, porównując z wolfram alpha i wszystko wygląda ok. Nie mam wgl pomysłu gdzie szukać błędu, stąd proszę was o jakieś wskazówki. Mój kod (usunięte po uzyskaniu AC)

  • created

    Mar '21
  • last reply

    Mar '21
  • 5

    replies

  • 607

    views

  • 3

    users

  • 6

    likes

  • 2

    links

Przede wszystkim podaj dobrze sformatowany kod, jak jest to opisane w linku pawoj20, najlepiej jako link do ideone. Na to co podałeś to się patrzeć nie chce.

  1. Faktycznie bezsensu :smiley: Nie działało więc zacząłem kombinować i przekombinowałem.
  2. Wydaje mi się że jest ok. Zakres dla x zwiększyłem, a ln oraz sin/cos nie dają jakiś ogromnych wyników. A skoro wyświetlamy do 2 miejsc po przecinku to uznałem że float wystarczy, ale sprawdziłem i dla long double dalej ten sam błąd.
  1. Pewien problem może być z łączenie cin i cout z printf i scanf. Chyba najlepiej zdecydować się na jeden albo drugi sposób.
    Do wczytywania użyj scanf do wypisywania printf albo jeszcze lepiej do wczytywania cin a do wypisywanie cout
    cout <<fixed<<setprecision(2)<< real << " " << imag << endl;
    Oczywiście w celu obsługi manipulatora “setprecision” konieczne jest dodanie biblioteki “iomanip”

  2. Dlaczego używasz starych bibliotek typu math.c? Nowszą, lepszą biblioteką jest cmath.

  3. Twoja funkcja robi chyba za dużo czynności. Oblicza wartości i je wypisuje. Lepiej gdy działanie funkcji ograniczy się do wykonywania jednej czynności. Np. tylko oblicza wartości albo tylko je wypisuje. Oczywiście pojawia się wtedy pytanie o to czy jest sens utworzyć tutaj taką funkcję. Z punktu widzenia działania programu i jego czytelności moim zdaniem nie ma to sensu. Program jest zbyt prosty. Co innego, gdy chodzi o pisanie tych funkcji w celach szkoleniowych.

Dzięki wielkie, zmieniłem zgodnie z tym co pisałeś w 1 i jest AC :blush: A co do 2 i 3 to wynika to poprostu z moich początków (nie jestem i raczej nie będę informatykiem/programistą :smiley: ) także dzięki za cenne wskazówki :wink: