求大神看看这个程序哪出错了,求x2是总是输出-1.ind00(貌似是越界有关问题)

求大神看看这个程序哪出错了,求x2是总是输出-1.#ind00(貌似是越界问题)
#include<stdio.h>
#include<math.h>
 main()
{float a,b,c;
float x1,x2,y,d,d2;

printf("输入系数:");
scanf("%f %f %f",&a,&b,&c);
if(a==0)
{x1=x2=(-c)/b;}

else
  {d=b*b-4*a*c;d2=d;
y=(-b)/(2*a);
  if(d>=0)
  {x1=y+sqrt(d)/(2*a);
  x2=y-sqrt(d2)/(2*a);}
  else
x1=y+sqrt(-d)/(2*a);
  x2=y-sqrt(-d)/(2*a);
  }
printf("x1=%f x2=%f\n",x1,x2);

  }
我试几组数,x2总=-1.#ind00

------解决方案--------------------
#include<stdio.h>
#include<math.h>
 main()
{float a,b,c;
float x1,x2,y,d,d2;

printf("输入系数:");
scanf("%f %f %f",&a,&b,&c);
if(a==0)
{x1=x2=(-c)/b;}

else
{d=b*b-4*a*c;
d2=d;
y=(-b)/(2*a);
if(d>=0)
{x1=y+sqrt(d)/(2*a);
x2=y-sqrt(d2)/(2*a);
}
else
{
x1=y+sqrt(-d)/(2*a);
  x2=y-sqrt(-d)/(2*a);
}
printf("x1=%f x2=%f\n",x1,x2);
}
}
 你的代码丢大括号了,我帮你加了