c语言程序不会寻找错误

问题遇到的现象和发生背景 C语言初学者,有个要求找错的程序,但我运行程序却可以运行,请问哪里出错了
用代码块功能插入代码,请勿粘贴截图
#include 
#include 
int main(void)
{
double a, b, c,d;
printf("Enter a, b, c \n");
scanf("%lf%lf%lf", &a, &b, &c);
d = b * b - 4 * a * c;
if(a==0)
{
   if(b=0) 
  {
    if(c==0)
      printf( " 参数都为零,方程无意义 !\n " );
    else
      printf( " a 和 b 为 0 , c 不 为 0 ,方程不成立 \n " );
  }
  else
    printf( " x = %0.2f\n " , - b/(2*a) );     
}
else
   if (d==0) 
       printf( " x = %0.2f\n " , - b/(2*a) );
   else
       
     if(d > 0)
     {
        printf( " x1=%0.2f\n " , (-b + sqrt(d))/2*a);
        printf( " x2=%0.2f\n " , (-b-sqrt(d))/2*a);
     }
     else
     {
     printf( " x1=%0.2f+%0.2fi\n " , -b/(2*a), sqrt(-d)/(2*a));
     printf( " x2=%0.2f-%0.2fi\n " , -b/(2*a), sqrt(-d)/(2*a));
     }
return 0;
}

double类型和0作比较时候错误