C语言关于“表达必须是可修改的左值”的一个问题

用C语言实现一个分段函数:
当x=0时,x取0;当x!=0时,x取1。
VS里面写成下面这样,就会把x和n标红,并提示“表达必须是可修改的左值”,这个问题该怎么解决,求指点。

#include 

void fenduan(int n)
{
        n == 0 ? n = 0 : n=1;
}
int main()
{
         int x = 3;
         x == 0 ? x = 0 : x =1;

         fenduan(x); // 放到主函数外面也标红

        return 0;
}

用if()表示也一样标红。

n == 0 ? n = 0 : n=1;
改成 n==0?0:1;

请问你定义n与x了吗