666. 三角形类型

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

输入格式

共一行,包含三个浮点数 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;
}
上一篇:京东十年T8架构师手撕MySQL:手写666页核心知识,超85%问题全解


下一篇:第一篇-小组人员介绍