python入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。编写一个小程序实现该功能。
时间: 2024-09-25 11:20:53 浏览: 73
在Python中,我们可以使用数学知识和简单的条件判断来实现这个功能。首先,我们需要检查这三个数是否满足构成三角形的基本条件,即任意两边之和大于第三边。然后,如果可以构成三角形,我们计算其面积。对于直角三角形,面积可以用公式 `0.5 * a * b` 计算,其他非直角三角形可以用海伦公式 (Heron's formula) 来计算,其中半周长为 `s = (a + b + c) / 2`,面积 `A = sqrt(s * (s - a) * (s - b) * (s - c))`。
下面是一个简单的小程序实现:
```python
import math
def is_triangle(a, b, c):
# 检查构成三角形的条件
if a + b > c and a + c > b and b + c > a:
return True
else:
return False
def triangle_area(a, b, c):
# 计算半周长
s = (a + b + c) / 2
# 根据情况选择合适的面积公式
if a == b and b == c: # 等边三角形
area = (math.sqrt(3) / 4) * c**2
elif a == b or b == c or a == c: # 直角三角形
area = 0.5 * min(a, b)
else: # 非等腰非直角三角形
area = math.sqrt(s * (s - a) * (s - b) * (s - c))
return round(area, 2)
# 用户输入三个数字
a = float(input("请输入第一个边长: "))
b = float(input("请输入第二个边长: "))
c = float(input("请输入第三个边长: "))
if is_triangle(a, b, c):
print("YES", f"三角形面积: {triangle_area(a, b, c)}")
else:
print("NO")
```
在这个程序中,用户会被提示输入三个边长,然后函数会根据输入判断并计算面积,最后打印出相应的结果。
阅读全文