```csharp using System; class Program { static void Main() { Console.Write("请输入第一条边的长度: "); double side1 = Convert.ToDouble(Console.ReadLine()); Console.Write("请输入第二条边的长度: "); double side2 = Convert.ToDouble(Console.ReadLine()); Console.Write("请输入第三条边的长度: "); double side3 = Convert.ToDouble(Console.ReadLine()); if (IsTriangle(side1, side2, side3)) { if (IsRightTriangle(side1, side2, side3)) { Console.WriteLine("这是一个直角三角形"); } else if (IsAcuteTriangle(side1, side2, side3)) { Console.WriteLine("这是一个锐角三角形"); } else { Console.WriteLine("这是一个钝角三角形"); } } else { Console.WriteLine("无法构成三角形"); } } static bool IsTriangle(double side1, double side2, double side3) { // 判断能否构成三角形,任意两边之和大于第三边 return (side1 + side2 > side3) && (side1 + side3 > side2) && (side2 + side3 > side1); } static bool IsRightTriangle(double side1, double side2, double side3) { // 勾股定理判断是否为直角三角形 return (side1 * side1 + side2 * side2 == side3 * side3) || (side1 * side1 + side3 * side3 == side2 * side2) || (side2 * side2 + side3 * side3 == side1 * side1); } static bool IsAcuteTriangle(double side1, double side2, double side3) { // 判断是否为锐角三角形 double[] sides = { side1, side2, side3 }; Array.Sort(sides); return (sides[0] * sides[0] + sides[1] * sides[1]) > sides[2] * sides[2]; } } ``` 额外需要注意的逻辑点: 1. 输入的边长必须是有效的数值,否则可能会导致程序出错。 2. 对于判断三角形类型的条件,要确保逻辑的准确性。 3. 在实际应用中,考虑对输入进行更多的有效性检查,比如是否为正数等。 [2025-01-09 12:12:31 | AI写代码神器 | 570点数解答]