C语言解一元二次方程,运行结果不对

#include "stdio.h"
#include"math.h"
int main()
{
double a,b,c,y,p,q,x1,x2,x;
printf("求一元二次不等式axx+bx+c=0的解,请输入a,b,c的值:");
scanf("%lf,%lf,%lf\n",&a,&b,&c);
y=b
b-4.0ac;
if(a==0)
{
x=-(1.0)*c/b;
printf("不是一元二次方程组,解为x=%3.5lf",x);
}
else if (a!=0)
if(y==0)
{
x1=x2=-(1.0)b/(2.0a);
printf("有两个相等的解x1=x2=%3.5lf",x1=x2);
}

else if(y>0)
  { p=-(1.0)*b/(2.0*a);
   q=sqrt(y)/(2.0*a);
  
    x1=p+q;
    x2=p-q;
  printf("方程有两个不同的解为x1=%3.5lf,x2=%3.5lf",x1,x2);
  }    

  else if(y<0)
  {printf("有两个虚根");
  }
  

return 0;

}
程序可以运行,但是运行结果不对,那里出问题了

printf("有两个相等的解x1=x2=%3.5lf",x1=x2);这句话不对,应该是
printf("有两个相等的解x1=x2=%3.5lf",x1);

x=-(1.0)*c/b; 这里,最好判断一下b是否等于0,如果b等于0,方程无解。

另外,scanf("%lf,%lf,%lf\n",&a,&b,&c);这句话中,%lf和%lf之间有逗号,在输入数据的时候也要输入逗号