题目描述
读取表示三角形三条边的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
样例
输入样例:
7.0 5.0 7.0
输出样例:
TRIANGULO ACUTANGULO
TRIANGULO ISOSCELES
好简单的题
这道题主要注意题目中的情况可以同时存在,然后把情况全写出来就AC
#include <iostream>
#include <algorithm>
using namespace std;
double p(double x){
return x * x;
}
int main(){
double a,b,c;
cin >> a >> b >> c;
double arr[3] = {a, b, c};
sort(arr,arr + 3,greater<double>());
a = arr[0];b = arr[1];c = arr[2];
if (a >= (b + c)){
cout << "NAO FORMA TRIANGULO";
}
else{
if (p(a) == p(b) + p(c)){
cout << "TRIANGULO RETANGULO" << endl;
}
if (p(a) > p(b) + p(c)){
cout << "TRIANGULO OBTUSANGULO" << endl;
}
if (p(a) < p(b) + p(c)){
cout << "TRIANGULO ACUTANGULO" << endl;
}
if (a == b || b == c || a == c){
if (a == b && b == c){
cout << "TRIANGULO EQUILATERO" << endl;
}
else{
cout << "TRIANGULO ISOSCELES" << endl;
}
}
}
return 0;
}