求解一元二次方程输出不对,求解答

C语言如下代码输出老是如图所示,不知道怎么更改,输出不是数值。

img

img

看着没啥毛病啊,确定是代码保存后编译运行的结果么

int main()
{
    float a,b,c;
    scanf("%f %f %f",&a,&b,&c);
    float d  =b*b - 4*a*c;
    if(d>0)
    {
        float x1 = (-b+sqrt(d))/(2*a);
        float x2 = (-b-sqrt(d))/(2*a);
        printf("x1=%0.3f,x2=%0.3f\n",x1,x2);
    }
    else if(d==0)
    {
        float x1= -b/(2*a);
        float x2=x1;
        printf("x1=%0.3f,x2=%.3f\n",x1,x2);
    }
    else
        printf("无根");
    return 0;
}

测试了一下,没毛病啊

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632