读取表示三角形三条边的 33 个浮点数 A,B𝐴,𝐵 和 C𝐶 并按降序排列,使 A𝐴 边是三边中最大的一边。
接下来,根据以下情况,确定它们可以组成的三角形类型:
- 如果 A≥B+C𝐴≥𝐵+𝐶,则说明三条边不能构成三角形,请输出:
NAO FORMA TRIANGULO
- 否则,说明三条边可以构成三角形,然后按如下情况输出:
- 如果A2=B2+C2𝐴2=𝐵2+𝐶2,请输出:
TRIANGULO RETANGULO
- 如果A2>B2+C2𝐴2>𝐵2+𝐶2,请输出:
TRIANGULO OBTUSANGULO
- 如果A2<B2+C2𝐴2<𝐵2+𝐶2,请输出:
TRIANGULO ACUTANGULO
- 如果三个边长度都相同,请输出:
TRIANGULO EQUILATERO
- 如果只有两个边长度相同而第三个边长度不同,请输出:
TRIANGULO ISOSCELES
- 如果A2=B2+C2𝐴2=𝐵2+𝐶2,请输出:
输入格式
共一行,包含三个浮点数 A,B,C𝐴,𝐵,𝐶。
输出格式
输出 A,B,C𝐴,𝐵,𝐶 组成的三角形的类型。
注意,上述条件可能满足不止一条,这种情况下将所有类型名称,按题目介绍顺序输出,每行输出一条。
数据范围
0<A,B,C≤10.00<𝐴,𝐵,𝐶≤10.0
输入样例:
7.0 5.0 7.0
输出样例:
TRIANGULO ACUTANGULO
TRIANGULO ISOSCELES
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
/* double a,b,c,d,e,f,m,n,o;
cin>>a>>b>>c;
d=max(a,b);
m=max(d,c);
e=min(a,b);
n=min(e,c);
f=a+b+c;
o=f-m-n;*/
double m,n,o;
cin>>m>>n>>o;
if(m<o) swap(m,o);
if(m<n) swap(m,n);
if(o<n) swap(o,n);
if(m>=n+o) cout<<"NAO FORMA TRIANGULO"<<endl;
else
{
if(m*m==n*n+o*o) cout<<"TRIANGULO RETANGULO"<<endl;
if(m*m>n*n+o*o) cout<<"TRIANGULO OBTUSANGULO"<<endl;
if(m*m<n*n+o*o) cout<<"TRIANGULO ACUTANGULO"<<endl;
if(m==n&&m==o) cout<<"TRIANGULO EQUILATERO"<<endl;
if((m==n&&n!=o)||(m!=n&&n==o)||(m==o&&o!=n)) cout<<"TRIANGULO ISOSCELES"<<endl;
}
return 0;
}