c语言新手 为什么这个代码的除法输不出来结果啊?

#include
int main()
{
long long int a,b,d;
char ch;

scanf("%c",&ch);
scanf("%lld%lld",&a,&b);

if(ch=='/')
{
    if(b=0)
    printf("error");
    else
    {
        d=a/b;
        printf("%lld",d);
    }
}
if(ch=='%')
{
    if(b=0)
    printf("error");
    else
    {
    d=a%b;
    printf("%lld",d);
    }
}

}

if(b==0)漏了一个等号,变成赋值了

 #include<stdio.h>
#include<math.h>

int main()
{
    long long int a, b, d;
    char ch;
    scanf("%c", &ch);
    scanf("%lld%lld", &a, &b);
    if (ch == '/')
    {
        if (b == 0)
            printf("error");
        else
        {
            d = a / b;
            printf("%lld", d);
        }
    }
    if (ch == '%')
    {
        if (b == 0)
            printf("error");
        else
        {
            d = a % b;
            printf("%lld", d);
        }
    }
    return 0;
}

if(b==0)漏了一个等号