👤

Cerința
Se citesc trei numere reale de la tastatură. Să se verifice dacă formează laturile unui triunghi isoscel.

Date de intrare
Programul citește de la tastatură trei numere a b c.

Date de ieșire
Programul va afișa pe ecran unul din următoarele mesaje: Formeaza triunghi isoscel – în cazul în care triunghiul este isoscel; Nu formeaza triunghi isoscel – în cazul în care triunghiul este echilateral sau oarecare; Nu formeaza triunghi – în cazul în care numerele nu pot fi laturile unui triunghi.

Restricții și precizări
triunghiul echilateral nu este considerat isoscel
laturile triunghiului oarecare sunt distincte două câte două

Exemplu
Intrare

5 7.5 5
Ieșire

Formeaza triunghi isoscel
Explicație
numerele 5, 7.5 și 5 formează laturile unui triunghi isoscel.


Răspuns :

# include<iostream>
using namespace std;
int main()
{   
float a,b,c,cosA,cosB,cosC;
   
int OK = 0;
   
cin>>a>>b>>c;
   
if(!(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a))
                cout<<"Nu formeaza triunghi";
   
else
   
      {
       
                cosA=(b*b+c*c-a*a)/(2*b*c);
       
                cosB=(a*a+c*c-b*b)/(2*a*c);
       
                cosC=(a*a+b*b-c*c)/(2*a*b);
       
                if(cosA>0 && cosB>0 && cosC>0) OK = 1;
       
                if(!OK)
       
                      cout<<"Nu formeaza triunghi isoscel";
       
                else{
       
                      if((a==b && b!=c && cosA==cosB) || (a==c && a!=b && cosA==cosC) || (b==c && b!=a && cosB==cosC))
       
                                 cout<<"Formeaza triunghi isoscel";
       
                      else
       
                                 cout<<"Nu formeaza triunghi isoscel";
       
                }
   
       }
       
return 0;
}