我们知道勾股定理是中国古代最伟大的数学发现之一,它可以用来判定直角三角形:当两边的平方和等于第三边的平方,说明是直角三角形。
但大多数人不知道的是,勾股定期还有如下拓展:
当两较小边的平方和小于第三边的平方,说明是钝角(大于90°的角)三角形;
当两较小边的平方和大于第三边的平方,则说明是锐角(小于90°的角)三角形。
给出三条线段 $a,b,c$ 的长度,打算把这三条线段拼成一个三角形,它可以是什么三角形呢?
Not triangle
;Right triangle
;Acute triangle
;Obtuse triangle
;Isosceles triangle
;Equilateral triangle
。如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。
输入数据仅一行,三个空格隔开的整数
输出若干行,均为英文描述,表示三角形的种类(注意首字母大写以及两个英文单词中间的空格)
3 4 5
Right triangle
6 6 8
Acute triangle
Isosceles triangle
循环和分支结构是两种不同用途的结构,不能相互替代,这个题目只能用分支结构
代码如下:
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
int t;
cin >> a >> b >> c;
//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 * a + b * b == c * c)
cout <<"Right triangle\n";
else if (a * a + b * b > c * c)
cout <<"Acute triangle\n";
else
cout <<"Obtuse triangle\n";
if (a == b || a == c || b == c)
cout <<"Isosceles triangle\n";
if (a == b && b == c)
cout <<"Equilateral triangle\n";
return 0;
}