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