关于C语言,用if语句写数学的分段函数

题目内容是 当X>0时 y=1, 当X=0时,y=0, 当X<0时 y=-1 用简单的if else语句该怎么写?

#include <stdio.h>
int main()
{
int x,y;
printf("请输入一个X的值:");
scanf("%d",&x);
if(x=0)
y=x=0;
printf("x=%d,y=%d",x,y);
else if(x>0)
y=x=1;
printf("x=%d,y=%d",x,y);
else(x<0)
y=x=-1;
printf("x=%d,y=%d",x,y);
return 0;
}
这个是我自己写的,编译时出错 : error C2181: illegal else without matching if
: error C2181: illegal else without matching if
: error C2146: syntax error : missing ';' before identifier 'y'
看不懂错在什么地方,请大神帮写一个正确的

#include <stdio.h>
int main()
{
    int x,y;
    printf("请输入一个X的值:");
    scanf("%d",&x);
    if(x==0)
        y=x=0;
    else if(x>0)
        y=x=1;
    else if (x<0)
        y=x=-1;

    printf("x=%d,y=%d",x,y);
    return 0;
}

//--------------------------------以上是本人根据你的意思修改的大意,添添加加而已,呵呵。

// 在这里,我指出你的错误,可以对你有很大的帮助。

//第一、if语句连续使用,只执行成功的那一个,如果后面有,就不会再执行了。

//第二、不用每次都printf("x=%d,y=%d",x,y);,在最后就可以了。以上是我修改的。我还发现你的  (x<0)前面没有if 保留字。

//--------------------------------如果在你的程序上边,加几个范围标识符就可以{}  下面是第二个程序。
#include <stdio.h>

int main()
{
    int x,y;
    printf("请输入一个X的值:");
    scanf("%d",&x);
    if(x==0)
    {
        y=x=0;
        printf("x=%d,y=%d",x,y);
    }
    
    else if(x>0)
    {
        y=x=1;
        printf("x=%d,y=%d",x,y);    
    }
    
    else if (x<0)
    {
        y=x=-1;
        
        printf("x=%d,y=%d",x,y);
    }
    
    return 0;
    
    
    
}

//还有哦,=是贬值,==是判断,你看看你的判断是=,呵呵,是错误的哦。
//2个程序的意思结果是一样的,写法不是很一样,你可以和你的对比对比,充分理解这2个程序。那么就证明你掌握啦。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-19
最明显的错误是当你想要表达x=0时要写x==0.
c语言中的相等关系是==不是=。
还有你那个if右面的大括号都没写。if后面的是两个语句,要写括号啊亲。。。
第2个回答  2013-08-19
#include <stdio.h>
int main()
{
int x,y;
printf("请输入一个X的值:");
scanf("%d",&x);
if(x==0)
y=0;
else if(x>0)
y=1;
else
y=-1;
printf("x=%d,y=%d",x,y);
return 0;
}
第3个回答  2013-08-19
if 和else是成对出现的,他是说你用了else却没用if于他相匹配
你在最后一个else 后面加上if就好了
第4个回答  2013-08-19
第一个if改为if(x==0)
相似回答