Polski SPOJ i zadanie "pole pewnego koła" – błąd dotyczący limitu

0

Siemka, zrobiłem zadanie z spoja "pole pewnego koła", wszystko na konsoli działa jak należy, przykładowe dane wejsciowe na wyjsciu wypisuje te same co w przykładzie dodanym do tresci zadania jednak wyświetla się pomarańczowy kolor i błąd o treści "1.2(limit: 2)" :(
Co to oznacza i jak próbować ulepszyć kod by usunąć błąd

0

Uzyskałeś za to zadanie 1.2 punktu, a do zaliczenia potrzeba 2 punkty. Daj kod, zobaczy się gdzie jest błąd

0
#include <iostream>
using namespace std;

int main()
{
    float r , d, R, S;
    cin>>r>>d;
        if((1<=d)&&(d<2*r)&&(2*r<=2000)){
            R= (r*r)-((d*d)/4);
            S = R* 3.141592654;
            cout<<S<<endl;
        }

    return 0;
}
0

Zacznij od przejścia z typu float na double. Ponadto niepotrzebnie sprawdzasz założenie, SPOJ gwarantuje poprawność danych. Jeśli nie pomoże, zacznij ucinać rozwiązanie do dwóch liczb po przecinku, nie jestem pewien, jaka jest specyfikacja wyjścia.

0

Poza double potrzebujesz też cout << fixed przed wyświetleniem wyniku, bez niego też zaliczy ale na 2.2 punka a nie max czyli 4

0
Althorion napisał(a):

Ponadto niepotrzebnie sprawdzasz założenie, SPOJ gwarantuje poprawność danych. Jeśli nie pomoże, zacznij ucinać rozwiązanie do dwóch liczb po przecinku, nie jestem pewien, jaka jest specyfikacja wyjścia.

Powiem więcej (dawno przestałem bawić się w SPOJ'a), ale z tego co kojarzę niektóre zadania mają wejście niezgodne ze specyfikacją, ale nie pamiętam dokładnie które. I tak w tym przypadku trzeba obcinać wynik do 2 miejsc po przecinku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1