c语言if问题,救命

为什么输入负数
得到的是sign(0)=-1啊 救命

#include<stdio.h>
int main(void)
{
int n=0;
int m=0;

scanf("%d",&n);
if(n>0){
    m=1;
    printf("sign(%d) = %d",n,m);
}
else if(n=0){
    m=0;
    printf("sign(%d) = %d",n,m);
}
else{
    m=-1;
    printf("sign(%d) = %d",n,m);
}
return 0;

}

else if(n==0)

判断是否相等用的是==
= 是赋值用的