a = float(input('输入三角形第一边长: '))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长: '))
# 计算半周长
s = (a + b + c) / 2
# 计算面积
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
print('三角形面积为{0:0.2f}'.format(area))
执行以上代码输出结果为:
输入三角形第一边长: 5
输入三角形第二边长: 6
输入三角形第三边长: 7
三角形面积为 14.70
在实际过程中我们会发现,当我们输入“2”、“2”、“4”的时候,程序会返回结果 0。这是为什么呢?
根据三角形的定义“两边之和大于第三边”,我们可以得知我们输出的三角形数据是非法的,因此海伦公式计算出来的结果为 0。那么我们该如何调整程序呢
a = float(input('输入三角形第一边长: '))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长: '))
#判断三边是否构成三角形,若能则利用海伦公式计算并输出面积,否则输出不能构成三角形
if (a+b>c) and (a+c>b) and (b+c>a):
# 计算半周长
s = (a + b + c) / 2
# 计算面积
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
print('三角形面积为{0:0.2f}'.format(area))
else:
print('三边不能构成三角形')
现在当我们输入非法三角形数据的时候,程序会提示我们“三边不能构成三角形”
感谢内测群 余宇宙-清远 提供程序