• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ RODZ_TRO - Rodzaje trójkątów

Object Storage Arubacloud
0 głosów
1,058 wizyt
pytanie zadane 16 czerwca 2016 w C i C++ przez niezalogowany

Napisałem teoretycznie cały program wszystko działa jak powinno, ale w czasie sprawdzania na SPOJ wyrzuca mi "Błędna odpowiedź".

 

Nie chcesz sobie psuć zabawy? Nie czytaj!

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int a,b,c;
    string prostokatny = "prostokatny" ;
    string ostrokatny = "ostrokatny" ;
    string rozwartokatny = "rozwartokatny";
    while (cin >> a >> b >> c)
    {
    if (a+b>c&&a+c>b&&b+c>a)
    {
    if ((pow(a,2)+pow(b,2))==(float)pow(c,2))
        cout << prostokatny << endl;
    else if ((pow(a,2)+pow(b,2))>(float)pow(c,2))
        cout << ostrokatny << endl;
    else if ((pow(a,2)+pow(b,2))<(float)pow(c,2))
        cout << rozwartokatny << endl;
    }
        else
            cout << "brak" << endl;
    }


    return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 16 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
wybrane 21 czerwca 2016
 
Najlepsza
Zazwyczaj tego typu problemy spowodowane są wyjściem poza zakres danej zmiennej (W tym wypadku pewnie chodzi o zmienne a,b,c)
Daj link do zadania.. Powinien tam pojawić się zakres zmiennych, którego należy się spodziewać zarówno na wejściu jak i wyjściu.
komentarz 16 czerwca 2016 przez niezalogowany
komentarz 16 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)

"Każdy z nich składa się z trzech liczb: ab i c (wszystkie < 10000)."
Dla tego (fragmentu) kodu oraz dla a,b=9999
pow(a,2)+pow(b,2)=2*9999^2=199'960'002
Przypominam, że int ma zakres od -2'147'483'648 do 2'147'483'647
W takim razie.. problem nie leży w zakresach : /
Czy dla wszystkich testów wywala ci zły wynik?

komentarz 16 czerwca 2016 przez niezalogowany
Tak, przerabiałem program kilka razy na początku był prostszy, a po przeróbkach wyszło takie coś jak na górze :D
komentarz 16 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Możliwe, że zamiana "int a,b,c" na "float a,b,c" załatwi sprawę.. W zadaniu nie jest powiedziane, że mamy do czynienia z tylko liczbami naturalnymi.
komentarz 16 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Ha! Już wiem gdzie jest problem.. Pozwól, że ci podpowiem.. Przetestuj swój program dla takich danych:
10,5,10
10,10,5
3,4,5
5,4,3
komentarz 21 czerwca 2016 przez niezalogowany
Ok, poszło dzięki za pomoc :D
+1 głos
odpowiedź 16 czerwca 2016 przez Grzyboo Nałogowiec (28,860 p.)

Raczej problem z zakresem zmiennych.

Inna sprawa:

(float)pow(c,2)

Dlaczego konwertujesz na float? Przecież to tylko może powodować złe wyniki, gdy obcinasz double do float po prawej stronie, a po lewej zostawiasz double.

Podobne pytania

0 głosów
2 odpowiedzi 379 wizyt
pytanie zadane 1 grudnia 2020 w Python przez Mateusz Bartczak Użytkownik (610 p.)
0 głosów
1 odpowiedź 419 wizyt
pytanie zadane 16 sierpnia 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)
0 głosów
2 odpowiedzi 394 wizyt
pytanie zadane 29 kwietnia 2018 w C i C++ przez Dorian Bajorek Dyskutant (7,920 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...