c语言 一元二次方程(输入a,b,c,输出两个解。)出错

问题遇到的现象和发生背景

a,b,c不论输入多少,代码结果都是无解,不知道是哪里出了问题

问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<math.h>
int main()
{
    double a,b,c,x1,x2,d,x3,x0;
    printf("输入三个系数:"); //1 2 1
    scanf("a=%lf b=%lf c=%lf",&a,&b,&c);
    if(a!=0)
    {
        d=sqrt(b*b-4*a*c);
        if(d=0)
        {
            x0=(-b)/(2*a);
            printf("%.2lf\n",x0);
        }
        else if(d>0)
        {
            x1=(-b+d)/(2*a);
            x2=(-b-d)/(2*a);
            printf("%.2lf%.2lf\n",x1,x2);
        }
        else
        {
            printf("无解"); 
        }
    }
       
    else
       {
           x3=-c/b;
           printf("%.2lf\n",x3);
        } 
    return 0;
 } 

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

没什么问题啊,是不是你输入格式错了

img

img

改成scanf("%lf%lf%lf",&a,&b,&c);

img


改成d==0

条件判断有错误