我有一个问题:确定用户给出的三个正浮点值(a,b,c)是否可以表示具有非零区域的三角形的三个边长;通过使用三角不等式定理。用户输入不需要进行错误检查。
以下代码是答案纸上给出的答案。但是,我不明白,有人可以在代码中向我解释's'和'eps'的目的吗?谢谢!
a = float (input ("Please enter a positive value, a: "))
b = float (input ("Please enter a positive value, b: "))
c = float (input ("Please enter a positive value, c: "))
s = (a + b - c) * (a + c - b) * (c + b - a)
eps = 0.0000001
if abs(s) > eps:
print ("The 3 values form a triangle with non-zero area.")
else:
print ("The 3 values DO NOT form a triangle at all.")
答案 0 :(得分:1)
在三角形中,任何两边必须加起来大于第三边。
如果其中一方长于另外两条加起来,那么s将等于负数。只要s的值大于eps(基本上就是说只要s大于0),就会发现3个点确实形成了一个有效的三角形。
这有帮助吗?如果您需要更多信息,请告诉我。
答案 1 :(得分:0)
s中不能有两个负面因素是显而易见的,因为较小边的总和小于最长边意味着当最长边包含在总和中时,总和将超过较小的一个边