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;
}
artur99:
nu e ok cu return 0; la fiecare if... Irosesti f mult spatiu useless... e mai ok un else if decat un if cu return 0;
Răspunsuri la întrebare
Răspuns de
11
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;
}
#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;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă