Discuss / Python / 依次输入二次,一次和常数项:2,3,1.运行后方程的两根是-4和-2.正确的应该是-0.5和-1,看代码感觉没错啊,这怎么回事?

依次输入二次,一次和常数项:2,3,1.运行后方程的两根是-4和-2.正确的应该是-0.5和-1,看代码感觉没错啊,这怎么回事?

Topic source

import math

def quadratic(a, b, c):

    if math.sqrt(b*b-4*a*c)>=0:

      x1=(-b+ math.sqrt(b*b-4*a*c))/2*a

      x2=(-b- math.sqrt(b*b-4*a*c))/2*a

      print('方程有两个相等或者不等实根:\nx1=%.1f\nx2=%.1f'%(x1,x2))

      return '结束'

    else:

       print('方程无根') 

       return '结束'

a=int(input('请输入二次项系数:'))

b=int(input('请输入一次项系数:'))

c=int(input('请输入常数项:'))

print(quadratic(a,b,c))

笑笑生hj

#2 Created at ... [Delete] [Delete and Lock User]

x1=(-b+ math.sqrt(b*b-4*a*c))/2*a这里的2*a要加括号,不然就是前面的一串乘以a


  • 1

Reply