输入三角形三条边的长度a、b、c,判断它们分别能构成什么形状的三角形:普通三角形、等边三角形、等腰三角形、等腰直角三角形。
(提示:判断两个浮点数a、b相等,可以使用fabs(a-b)<0.001 )
输入
三条边的长度
输出
三角形类型的名称;如果不能构成三角形,就输出"非三角形"
a=int(input("请输入三角形A边:"))
b=int(input("请输入三角形B边:"))
c=int(input("请输入三角形C边:"))
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
print("能构成三角形")
if a==b and b==c:
print("是等边三角形")
elif(a==b or a==c or b==c):
print("是等腰三角形")
elif (a*a+b*b==c*c) or (a*a+b*b==c*c) or (a*a+b*b==c*c):
print("是直角三角形!")
else:
print("其他三角形")
else:
print("非三角形")
根据提示来看,应该输入的有可能是小数,所以干脆统一按照浮点数来处理。
先把输入的三个数排序,这样在比较的时候只需要比较两条短边就可以了,节省代码。
a, b, c = sorted(map(float, input().split()))
if a + b > c:
if abs(a-b) < 0.001:
if abs(a**2+b**2-c**2) < 0.001:
print("等腰直角三角形")
elif abs(a-c) < 0.001 and abs(b-c) < 0.001:
print("等边三角形")
else:
print("等腰三角形")
else:
print("普通三角形")
else:
print("非三角形")