紧急:求高手帮忙改下这个C程序!!

来源:百度知道 编辑:UC知道 时间:2024/05/08 21:25:50
下列程序用来求X的符号,sign为1,0,-1分别表示正号,无符号,负号。
#include <stdio.h>
int main(void)
{
int x,sign;
printf("input x:\n");
scanf("%d",&x);
if(x>0)
sign=1;
else if(x=0)
sign=0;
else
sign=-1;
printf("sign=%d\n", sign);
return 0;
}

对源程序进行编译连接,分别输入5,-9,0,观察运行结果。修改程序,使运行结果正确。

#include <stdio.h>
int main(void)
{
int x,sign;
printf("input x:\n");
scanf("%d",&x);
if(x>0)
sign=1;
else if(x==0)
sign=0;
else
sign=-1;
print("sign:");
printf("%d",sign);
return 0;
}

把else if(x=0)

改成else if(x == 0)就可以了
C语言里面=是赋值号,==才是等号
你原来的语句的意思就是把0赋给x,所以如果你输入的数本身是小于等于0,执行到这条else if(x=0) ,x里面的值就被彻底改成0了,导致这条测试总是不成立,然后执行下面的else语句,所以你输入0打印出的符号是-1

that is right

没什么该说的了.