[C++] Program badający czy można zbudować trójkąt

Ogromny problem z zadaniem a oto jego treść:

“Napisz program, który dla pobranych trzech liczb będących długością odcinków bada, czy da się z nich zbudować trójkąt. Jeśli tak, to określa powstały trójkąt jako rozwartokątny. W programie wykorzystaj zdefiniowane przez siebie funkcje.”

Jak to zrobić?

Nie podam Ci gotowego kodu czy programu (bo to akurat musisz sam zrobić - bardzo łatwe zadanie).

Jaki trzeba spełnić warunek, aby móc zbudować trójkąt? Suma dwóch odcinków musi być dłuższa od odcinka trzeciego, zatem funkcja warunkowa:

if ((a+b>c) && (a+c>b) && (b+c>a))

wtedy można zbudować trójkąt. W przeciwnym przypadku - nie.

Język nie ma tu znaczenia, zasada stworzenia tego programu opiera się na matematyce, a ta jest jedna.

Dodatkowo możesz określić, jaki to trójkąt przez funkcję:

if ((a=b) && (b=c))

To jest to trójkąt równoboczny.

if ((a=b) && (a=c) && (b=c))

To jest to trójkąt równoramienny.

if ((a*a+b*b=c*c) && (a*a+c*c=b*b) && (c*c+b*b=a*a))

To jest to trójkąt prostokątny.

Powodzenia w rozwiązaniu zadania! Reszta jest naprawdę prymitywna.

Wystarczy że jeden z tych warunków będzie prawdziwy - nie muszą być spełnione wszystkie 3.

Nie chcę marudzić, ale chyba miałeś na myśli “LUB” a nie “I”:

if ((a==b) || (a==c) || (b==c))

To jest to trójkąt równoramienny.


if ((a*a+b*b==c*c) || (a*a+c*c==b*b) || (c*c+b*b==a*a))

To jest to trójkąt prostokątny.

No to zamiast iloczynu logicznego (&&) można użyć sumę logiczną (||) .

To akurat nieprawda, weźcie sobie:

a = 1500100900;

b = 1;

c = 2;

wtedy pomimo że (a + b > c) == (a + c > b) == true i tak nie da się zbudować trójkąta ((b + c > a) nie przechodzi).

#include

using namespace std;

int main()

{

double a,b,c;

int t;

while (cin >>a>>b>>c){

if (a+b > c && a

{

cout<<1<

}

else cout<<0<

}

system (“pause”);

return 0;

}