三角形的面积-python 27
该程序设置为计算三角形的面积。三角形边(a、b、c)是一个输入。该代码仅适用于认证编号,而不适用于其他编号。例如 当a、b和c分别为: 2,3,4代码正常。 2,3,5输出为0.00,这是错误的。 2,3,6程序打印一个数学域错误三角形的面积-python 27,python,python-2.7,sqrt,Python,Python 2.7,Sqrt,该程序设置为计算三角形的面积。三角形边(a、b、c)是一个输入。该代码仅适用于认证编号,而不适用于其他编号。例如 当a、b和c分别为: 2,3,4代码正常。 2,3,5输出为0.00,这是错误的。 2,3,6程序打印一个数学域错误 def main(): print "Program calculates the area of a triangle." print a, b, c = input("Enter triangle's sides length: ")
def main():
print "Program calculates the area of a triangle."
print
a, b, c = input("Enter triangle's sides length: ")
s = (a+b+c) / 2.0
area = sqrt(s*(s-a)*(s-b)*(s-c))
print "The area is %.2f" % area
main()
你能看出怎么了吗 公式正在运行;是你的期望有点偏离了 2,3,5输出为0.00,这是错误的 真的吗?你能画一个边长为2、3和5的三角形吗?:^) 唯一的可能是一个退化三角形——一条线(一个2英寸的线段连接到一个3英寸的线段),显然它的面积为零 并非所有三个数字的组合都是三角形。你需要有
a+b>c
,b+c>a
和c+a>b
。对于(2,3,6),您有
3+6>2
和6+2>3
,但是2+3<6
,所以没有这样的三角形。您的代码似乎是合法的,让我们看看您的数学测试案例:
案例1:
a=2; b=3; c=5;
s=(2+3+5)/2.0
= 5.00
a=2; b=3; c=6;
s=(2+3+6)/2.0
= 5.50
面积=sqrt(s*(s-a)(s-b)(s-c))
见公式中有(s-c),结果是(5.00-5)=0
在这种情况下,面积=0.00,这是正确的
案例2:
a=2; b=3; c=5;
s=(2+3+5)/2.0
= 5.00
a=2; b=3; c=6;
s=(2+3+6)/2.0
= 5.50
就(s-c)而言,你有(5.50-6)=-0.5
负数的sqrt表示“数学域错误”
上述结果表明,这些数字不能形成合法的三角形。您的代码或公式没有问题。但是,在下次测试代码之前,请确保您的测试用例是合法的
我希望这会有帮助=]谢谢你。公式在我正在读的书中。为什么对于2,3,5,输出是0.00?当rour s变量,称为半周长,与三角形边之一的长度相同时,得到零。例如,(2+3+5)/2=5,然后
(s-c)
项将为零。