关于#c语言#的问题:求各位专家帮我看看代码,为什么出bug了(问题:求一元二次方程的根)#include <stdio.h>

求各位专家帮我看看代码,为什么出bug了
(问题:求一元二次方程的根)

#include
#include
int main()
{
float a,b,c,x1,x2,d;
scanf("%f,%f,%f",&a,&b,&c);
    if(fabs(a)<=1e-6)
    {    if(fabs(b)<=1e-6)
    if(fabs(c)<=1e-6)
        printf("一切实数");
    else
        printf("无解");
    else
        printf("根为:%f",-c/b);
    }
    else
    {
        d=b*b-4*a*c;
        if(d<0)
            printf("无实数根");
        else
    if(d<0)
    {
        x1=-b/(2*a)-sqrt(d)/(2*a);
        x2=-b/(2*a)+sqrt(d)/(2*a);
        printf("x=%f,x=%f",x1,x2);
    }

}






return 0;
}

你输入数据的界面截图看一下
22行为啥还是if(d<0)啊,不应该d>0了么?另外d为0的情况没写啊


int main() 
{ 
     float a,b,c,delta,x1,x2; 
     scanf("%f%f%f",&a,&b,&c); 
     delta=(b*b-4*a*c); 
     if (delta>0) 
     { 
        x1=(-b+sqrt(delta))/(2*a); 
        x2=(-b-sqrt(delta))/(2*a); 
        printf("x1=%5.2f,x2=%5.2f\n",x1,x2); 
     }       
     else if(delta==0) 
     { 
        x1=-b/(2*a); 
        printf("x=%5.2f\n",x1); 
     } 
     else 
     printf("无解\n"); 
}

答:可能是sqrt函数没有正确使用,请检查您的sqrt函数引入了正确的math.h头文件,并正确使用sqrt函数。