👤


Cerinţa

Să se scrie un program care citeşte trei numere reale şi verifică dacă aceste numere pot fi lungimile laturilor unui triunghi și în caz afirmativ determină daca triunghiul este ascuțitunghic, dreptunghic sau obtuzunghic.
SPUNETI-MI SI MIE ,VA ROG FRUMOS ,CU CE GRESESC LA ACEASTA PROBLEMA, MULTUMESC
Date de intrare

Programul citește de la tastatură trei numere reale a, b, c.

Date de ieşire

Programul afișează pe ecran mesajul nu este triunghi, dacă cele trei numere nu pot fi lungimile laturilor unui triunghi, respectiv unul dintre mesajele triunghi ascutitunghic, triunghi dreptunghic sau triunghi obtuzunghic, în funcție de natura triunghiului.

Restricţii şi precizări
•0 ≤ a,b,c ≤ 100

Exemplul 1:

Intrare
3 5 4


Ieșire
triunghi dreptunghic


Exemplul 2:

Intrare
5 1 4


Ieșire
nu este triunghi


#include
using namespace std;
int main()
{
int n,m,h;
cin>>n;
cin>>m;
cin>>h;
if(n+m<=h || n+h<=m || h+m<=n )
cout<<"nu este triunghi";
else
{
if(n*n+m*m==h*h || m*m+h*h==n*n || n*n+h*h==m*m )
{
cout<<"triunghi dreptunghic ";
return 0;
}
if(n*n+m*m > h*h || m*m+h*h > n*n || n*n +h*h > m*m )
{


cout<<"triunghi ascutitunghic";
return 0;
}
if(n*n +m*m < h*h || m*m +h*h < n*n || n*n +h*h < m*m )
{


cout<<"triunghi obtuzunghic";
return 0;
}
}


return 0;
}






Răspuns :

Calculezi cu 2 shortif-uri cea mai lunga latura, si celelalte 2 laturi, apoi faci comparatiile:

#include <iostream>
using namespace std;
int main(){
    int n,m,h, max, sum2;
    cin>>n;
    cin>>m;
    cin>>h;
    if(n+m<=h || n+h<=m || h+m<=n){
        cout<<"nu este triunghi";
    }else{
        max = m>n?(m>h?m:h):(n>h?n:h);
        //Calculezi lungimea celei mai lungi laturi
        max = max*max;
        //Apoi o ridici la a 2-a
        sum2 = m>n?(m>h?(h*h+n*n):(m*m+n*n)):(n>h?(h*h+m*m):(m*m+n*n));
        //Calculezi suma patratelor celorlalte 2 laturi
        //Apoi verifici fiecare caz
        if(sum2==max)cout<<"triunghi dreptunghic ";
        else if(sum2>max)cout<<"triunghi ascutitunghic";
        else cout<<"triunghi obtuzunghic";
    }
    return 0;
}