一元二次方程求根结果不对

为什么结果不对啊

img

#include
#include

int main()
{
    double a, b ,c,disc,x1,x2,realpart,imagpart;
    scanf("%lf %lf lf%",&a,&b,&c);
    printf("the equation ");
    if(fabs(a)<=1e-6)
    {
        printf("is not a quadratic!\n");
        printf("x1 = x2 = %lf",-(c/b));
    }
    else
    {
        disc = b*b-4*a*c;
        if(fabs(disc)<=1e-6)
        {
            printf("has two equal roots:%lf\n",-b/(2*a));
        }
        else
        {
            if(disc>1e-6)
            {
                x1 = (-b+sqrt(disc))/2*a;
                x2 = (-b-sqrt(disc))/2*a;
                printf("has two real roots :%lf and %lf \n",x1,x2);
            }
            else
            {
                realpart = -b/(2*a);
                imagpart = sqrt(-disc)/(2*a);
                printf("has complex roots :\n");
                printf("%lf + %lfi\n",realpart,imagpart);
                printf("%lf - %lfi\n",realpart,imagpart);
            }
        }
    }
    return 0;
}

第7行最后一个%lf,写反了