#题目描述:求解一元二次方程 ax^2 十 bx 十c=0 ,系数a、b、c通过键盘输入(保留2位小数)。 输入时不需要提示信息。
输入示例1: 1,-1,-6
输出示例1 :方程的解x1=3.00
方程的解x2=-2.00
输入示例2:1,2,1
输出示例2:方程的解x1=x2=-1.00
输入示例3:1,2,4
输出示例3:方程的解x1=-1.00+1.73j
方程的解x2=-1.00-1.73j
import math
a,b,c=eval(input().replace(',',','))
delta=b**2-4*a*c
if delta>0:#1,-1,-6
x1 = (b - delta ** 0.5) / (-2 * a)
x2 = (b + delta ** 0.5) / (-2 * a)
print("方程的解x1={:.2f}".format(x1))
print("方程的解x2={:.2f}".format(x2))
elif delta==0:#1,2,1
x=b/-2*a
print("方程的解x1=x2={:.2f}".format(x))
elif delta<0:#1,2,4
shi=-1*b/(2*a)
xu=math.sqrt(-1*delta)/(2*a)
print('方程的解',f'x1={shi:.2f}+{xu:.2f}i')
print('方程的解',f'x2={shi:.2f}-{xu:.2f}i')
本回答调用gpt:
根据你提供的代码,无法连续输入数字的原因是因为在输入时没有进行循环。你只输入了一组数字,而程序只会对这一组数字进行解方程,然后结束运行。如果你想连续输入数字,可以使用while循环来实现。示例代码如下:
import math
while True:
a, b, c = eval(input("请输入三个数,以逗号分隔(输入q退出):").replace(',',','))
if a == 'q' or b == 'q' or c == 'q':
break
delta = b ** 2 - 4 * a * c
if delta > 0:
x1 = (b - delta ** 0.5) / (-2 * a)
x2 = (b + delta ** 0.5) / (-2 * a)
print("方程的解x1={:.2f}".format(x1))
print("方程的解x2={:.2f}".format(x2))
elif delta == 0:
x = b / -2 * a
print("方程的解x1=x2={:.2f}".format(x))
elif delta < 0:
shi = -1 * b / (2 * a)
xu = math.sqrt(-1 * delta) / (2 * a)
print('方程的解', f'x1={shi:.2f}+{xu:.2f}i')
print('方程的解', f'x2={shi:.2f}-{xu:.2f}i')
在这个示例代码中,使用了while循环来实现连续输入数字的功能。每次循环中,程序会要求输入三个数字,如果输入的数字中有一个是字符q
,则会退出循环,结束程序。如果输入的是数字,则会对这三个数字进行解方程,并输出结果。
回答
你输入第二组它就解第二组了呀
题目只要求你解一组
加个while循环就可以了