666. 三角形类型
读取表示三角形三条边的 33 个浮点数 A,BA,B 和 CC 并按降序排列,使 AA 边是三边中最大的一边。
接下来,根据以下情况,确定它们可以组成的三角形类型:
- 如果 A≥B+CA≥B+C,则说明三条边不能构成三角形,请输出:
NAO FORMA TRIANGULO
- 否则,说明三条边可以构成三角形,然后按如下情况输出:
- 如果A2=B2+C2,请输出:
TRIANGULO RETANGULO
- 如果A2>B2+C2,请输出:
TRIANGULO OBTUSANGULO
- 如果A2<B2+C2,请输出:
TRIANGULO ACUTANGULO
- 如果三个边长度都相同,请输出:
TRIANGULO EQUILATERO
- 如果只有两个边长度相同而第三个边长度不同,请输出:
TRIANGULO ISOSCELES
- 如果A2=B2+C2,请输出:
输入格式
共一行,包含三个浮点数 A,B,CA,B,C。
输出格式
输出 A,B,CA,B,C 组成的三角形的类型。
注意,上述条件可能满足不止一条,这种情况下将所有类型名称,按题目介绍顺序输出,每行输出一条。
数据范围
0<A,B,C<10.0
输入样例:
7.0 5.0 7.0
输出样例:
TRIANGULO ACUTANGULO
TRIANGULO ISOSCELES
// 这题需要先排序,然后要注意各种 if 的关系是嵌套还是并列
#include <cstdio>
int main()
{
double a, b, c, t;
scanf("%lf%lf%lf", &a, &b, &c);
if (a < b)
{
t = a;
a = b;
b = t;
}
if (a < c)
{
t = a;
a = c;
c = t;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
if (a >= b + c) printf("NAO FORMA TRIANGULO\n");
else {
if (a * a == b * b + c * c) printf("TRIANGULO RETANGULO\n");
if (a * a > b * b + c * c) printf("TRIANGULO OBTUSANGULO\n");
if (a * a < b * b + c * c) printf("TRIANGULO ACUTANGULO\n");
if (a == b && b == c) printf("TRIANGULO EQUILATERO\n");
else
{
if (a == b || a == c || c == b) printf("TRIANGULO ISOSCELES\n");
}
}
return 0;
}