对于任一整数n,符号函数sign(n)的定义如下

对于任一整数n,符号函数sign(n)的定义如下

问题描述:

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

#include<stdio.h>

int main(){
int n,sign;
scanf("%d",&n);

if(n<0){
    sign=-1;
}else if(n=0){
        
    sign=0;
    
    }else{
        sign=1;
    }

    printf("sign(%d) = %d",n,sign);
return 0;

}

运行结果及报错内容

为什么输入是0的时候,sign=1?

我的解答思路和尝试过的方法
我想要达到的结果

else if(n=0)这里改成else if(n==0)

因为你 n=0
是赋值语句。
应该改成n==0

n=0 --> n==0

n=0 , 0 做 false 处理了