Witam, muszę napisać metodę mojej struktury przechowującej obiekty z długościami boków trójkąta, która będzie sprawdzała, czy jest to trójkąt prostokątny, rozwartokątny, czy też ostrokątny. Oto mój kod:
#include <iostream>
#include <string>
struct Trojkat {
int najwieksza_kw()
{
int n = a;
if(n > b) n = b;
if(n > c) n = c;
return n*n;
}
int pozostale_kw()
{
int n = a;
int p = b * b + c * c;
if(n > bok_b){
n = b;
p = a * a + c * c;
}
if(n > bok_c){
n = c;
p = a * a + b * b;
}
return p;
}
void sprawdz()
{
if((bok_a >= bok_b + bok_c) || (bok_c >= bok_b + bok_a) || (bok_c >= bok_a + bok_c))
{
std::cout<<"Nie mozna stworzyc takiego trojkata"<<std::endl;
}
else if(najwieksza_kw() > pozostale_kw())
{
std::cout<<"Trojkat jest rozwartokatny"<<std::endl;
}
else if(najwieksza_kw() < pozostale_kw())
{
std::cout<<"Trojkat jest ostrokatny"<<std::endl;
}
else
{
std::cout<<"Trojkat jest prostokatny"<<std::endl;
}
}
};
auto main() -> int
{
Trojkat t1 = {2,3,6};
Trojkat t2 = {5,4,3};
Trojkat t3 = {2,4,1};
Trojkat t4 = {4,3,6};
t1.sprawdz();
t2.sprawdz();
t3.sprawdz();
t4.sprawdz();
return 0;
}
Stworzyłem dwie pomocnicze funkcje. Pierwsza zwraca kwadrat najdłuższego boku, druga sumę kwadratów dwóch pozostałych. Problem w tym, że dla stworzonych obiektów program wypisuje taki wynik:
Nie mozna stworzyc takiego trojkata
Trojkat jest ostrokatny
Trojkat jest ostrokatny
Trojkat jest ostrokatny
Niestety nie jest on poprawny. Czy ktoś pomógłby mi znaleźć błąd w moim kodzie i podpowiedzieć jak go poprawić? Z góry dzięki!