任务描述
一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
如果a值 为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解,结果保留2位小数;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留2位小数。
输入格式
输入三行数据, 每行输入一个实数
输出格式
方程的解
示例 1
输入: 8 5 2 输出: 该方程无实数解
示例 2
输入: 0 0 9 输出: Data error!
平均代码量 18 行
代码演示
import math
a=eval(input())
b=eval(input())
c=eval(input())
if a==0:
if b==0:
print("Data error!")
else:
print('{:.2f}'.format(-c/b))
else:
if b**2-4*a*c>0:
x1=(-b-math.sqrt(b**2-4*a*c))/(2*a)
x2=(-b+math.sqrt(b**2-4*a*c))/(2*a)
if x1>x2:
print('{:.2f}'" "'{:.2f}'.format(x1,x2))
else:
print('{:.2f}'" "'{:.2f}'.format(x2,x1))
elif b**2-4*a*c==0:
print('{:.2f}'.format(-b/(2*a)))
else:
print("该方程无实数解")