Run ID:104498

提交时间:2025-01-05 11:23:24

#include<iostream> #include<cmath> using namespace std; int main() { double a, b, c; // 提示用户输入三角形的三条边 cout << "请输入三角形的三条边 a, b, c 的长度:" << endl; cin >> a >> b >> c; // 首先判断是否能构成三角形:任意两边之和大于第三边 if ((a + b > c) && (a + c > b) && (b + c > a)) { cout << "可以构成三角形。" << endl; // 判断三角形的类型 if (a == b && b == c) { cout << "该三角形是等边三角形(Equilateral Triangle)。" << endl; } else if ((a == b) || (a == c) || (b == c)) { cout << "该三角形是等腰三角形(Isosceles Triangle)。" << endl; } else { // 判断是否为直角三角形,使用勾股定理的近似判断,考虑浮点数误差 double a_squared = a * a; double b_squared = b * b; double c_squared = c * c; if (fabs(a_squared + b_squared - c_squared) < 1e-10 || fabs(a_squared + c_squared - b_squared) < 1e-10 || fabs(b_squared + c_squared - a_squared) < 1e-10) { cout << "该三角形是直角三角形(Right Triangle)。" << endl; } else { cout << "该三角形是一般三角形(Simple Triangle)。" << endl; } } } else { cout << "不能构成三角形。" << endl; } return 0; }