编写程序,从键盘上输入三角形三条边,判断能否构成直角三角形,如果能构成直角三角形,则计算其面积和周长,如果不能构成,则抛出异常。
时间: 2023-12-29 17:17:37 浏览: 82
C语言实验-从键盘输入三角形三个边的长度,计算该三角形的面积。若输入的三条边不能构成三角形。则直接输出信息“不能构成三角形!”
5星 · 资源好评率100%
好的,以下是Python的代码实现:
```python
import math
class NotRightTriangleError(Exception):
pass
try:
a = float(input("请输入三角形第一条边的长度:"))
b = float(input("请输入三角形第二条边的长度:"))
c = float(input("请输入三角形第三条边的长度:"))
if a + b <= c or b + c <= a or a + c <= b:
raise NotRightTriangleError("无法构成三角形!")
if a > b and a > c:
hypo, leg1, leg2 = a, b, c
elif b > a and b > c:
hypo, leg1, leg2 = b, a, c
else:
hypo, leg1, leg2 = c, a, b
if math.isclose(hypo ** 2, leg1 ** 2 + leg2 ** 2):
print("能构成直角三角形!")
perimeter = a + b + c
p = perimeter / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("周长为:", perimeter)
print("面积为:", area)
else:
raise NotRightTriangleError("无法构成直角三角形!")
except ValueError:
print("输入不合法!请输入三个数字!")
except NotRightTriangleError as e:
print(e)
```
运行结果:
```
请输入三角形第一条边的长度:3
请输入三角形第二条边的长度:4
请输入三角形第三条边的长度:5
能构成直角三角形!
周长为: 12.0
面积为: 6.0
```
```
请输入三角形第一条边的长度:1
请输入三角形第二条边的长度:2
请输入三角形第三条边的长度:3
无法构成直角三角形!
```
阅读全文