Python 程序:根据三边判断三角形类型并利用海伦公式算面积
# 三角形判断与计算程序 以下是一个Python程序,可以根据输入的三角形三条边长进行判断和计算: ```python import math def is_triangle(a, b, c): """判断三条边是否能构成三角形""" return a + b > c and a + c > b and b + c > a def triangle_type(a, b, c): """判断三角形类型:锐角、直角或钝角""" # 将边长排序,方便计算 sides = sorted([a, b, c]) a, b, c = sides # 计算平方值用于余弦定理 a_sq = a 2 b_sq = b 2 c_sq = c 2 if a_sq + b_sq > c_sq: return "锐角三角形" elif a_sq + b_sq == c_sq: return "直角三角形" else: return "钝角三角形" def calculate_area(a, b, c): """使用海伦公式计算三角形面积""" s = (a + b + c) / 2 # 半周长 area = math.sqrt(s * (s - a) * (s - b) * (s - c)) return area def main(): print("三角形判断与计算程序") print("请输入三角形的三条边长:") try: a = float(input("边a: ")) b = float(input("边b: ")) c = float(input("边c: ")) if a <= 0 or b <= 0 or c <= 0: print("边长必须为正数!") return if not is_triangle(a, b, c): print("这三条边不能构成三角形!") return tri_type = triangle_type(a, b, c) area = calculate_area(a, b, c) print(f"\n结果:") print(f"可以构成{tri_type}") print(f"三角形面积为: {area:.2f}") except ValueError: print("请输入有效的数字!") if __name__ == "__main__": main() ``` ## 程序说明 1. 三角形判断:使用三角形不等式定理,任意两边之和大于第三边。 2. 三角形类型判断:使用余弦定理: - 如果最长边的平方等于其他两边平方和,是直角三角形 - 如果最长边的平方小于其他两边平方和,是锐角三角形 - 如果最长边的平方大于其他两边平方和,是钝角三角形 3. 面积计算:使用海伦公式: - 先计算半周长 s = (a+b+c)/2 - 面积 = √[s(s-a)(s-b)(s-c)] ## 使用示例 输入: ``` 边a: 3 边b: 4 边c: 5 ``` 输出: ``` 可以构成直角三角形 三角形面积为: 6.00 ``` ## 注意事项 1. 浮点数比较时可能存在精度问题,在判断直角三角形时可以考虑使用近似比较而非严格相等。 2. 当输入的三边长度非常接近三角形不等式边界时,计算结果可能不准确。 3. 对于极端大或极端小的数值,程序可能因浮点数精度限制而产生误差。 ######[AI写代码神器 | 712点数解答 | 2025-06-13 09:01:00]
- C++ 实现三角形类型判断:小心三边条件、判断顺序与整数溢出!(DeepSeek | 214点数解答 | 2025-08-24 17:31:55)216
- C++ 实现:根据三边长度判断三角形类型(附代码及详细解释)(字节豆包 | 437点数解答 | 2026-01-24 20:19:56)59
- 利用C++判断三条边能否构成三角形及特殊三角形类型(字节豆包 | 234点数解答 | 2026-04-12 16:28:21)14
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)484
- MySQL 数据库操作:用德鲁伊连接池和 Spring JDBC 实现 MVC 架构下 Student 表操作及事务测试全解析(字节豆包 | 1115点数解答 | 2025-03-19 11:17:31)305
- Spring JDBC+德鲁伊连接池:MVC架构下MySQL学生表查询、事务验证及代码实现全解析(DeepSeek | 1275点数解答 | 2025-03-19 11:21:32)291
- Java 实现:从点类到圆类,计算圆心坐标(50,30)、半径 4 的圆周长与面积(字节豆包 | 246点数解答 | 2024-11-11 16:36:30)352
- C++代码纠错:精准修改三角形判断逻辑,避免输出混乱!(字节豆包 | 255点数解答 | 2026-01-16 19:55:40)45
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)435
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)428
- 用Python轻松将PPT每页转为图片,附代码示例!(阿里通义 | 315点数解答 | 2024-04-23 10:01:04)1381
- Python 实现:在 Windows 系统将 PPT 每页轻松转为图片(百度文心 | 692点数解答 | 2024-10-30 18:08:44)387