def quad(a, b, c):
solution1 = (-b + ((b**2 - 4 * a * c)**0.5)) / 2 * a
solution2 = (-b - ((b**2 - 4 * a * c)**0.5)) / 2 * a
return solution1, solution2
while True:
print "\nax^2 + bx + c = 0"
a = input("What does 'a' equal? ")
b = input("What does 'b' equal? ")
c = input("What does 'c' equal? ")
answera, answerb = quad(a, b, c)
print "(x -", str(answera) + ")(x -", str(answerb) + ") = 0"
print "x=" + str(answera) + ",x=" + str(answerb)
这个代码适用于“b”和“c”上的任何数字,(在合理范围内),但是每当“a”不是1时,代码就给出了错误的数字,我不知道它出了什么问题。你知道吗
按照行动顺序,在你的陈述中
,首先将结果除以2,然后将结果乘以
a
。这不是您想要的:您想要将2*a
的结果分成其余部分。通过在分母周围加括号来解决这个问题:写
/ 2 * a
时,首先除以2,然后乘以a
。你知道吗您想改为写
/ (2 * a)
。你知道吗相关问题 更多 >
编程相关推荐