您好,很高兴回答您的问题。
在c语言中,if语句表示的是选择结构,也就是满足某种条件就执行对应的语句。其中else语句不能单独使用,它的原则是总是与在它前面的、离它最近的、还没有与别的else匹配的if语句匹配。所以根据以上规则,发现else是与第二个if匹配,那么说明第一个if是总条件,那么else表示的就是x=0的情况。
其实用三个并列的if语句,就可以解决x=0,y=1;x>0,y=1;x<0,y=-1的情况。若是非要修改您的程序,那么就是把第二个if语句和y=1用花括号括起来即可。
答:代码的排版是非常重要的,你把代码重新排版一下,更有利于你理解程序。如下所示。
很明显里面的else是跟第2个if相配对的, Y的初值等于0,当y小于0时根本不会进入到if语句里面,所以y输出结果仍然为0。
希望可以帮助到你~
这个应该是if...else的配对有关系,else总是跟离它最近if配对的,如果你要else跟第一if配对,应在在第一个if语句后面用打括号把第二个if语句括起来。一般if语句这些大括号最好不要省略,稍微粗心一点就很容易导致出错,而且这种错误很难找出来。
因为你的else是和if(x>0)配对的,你的第二个if嵌套在第一个if里面,输入x<0时,整个判断都进不去,所以y保持初值为0被输出了
代码写得就是等于零......
看着架势应该是要写一个程序,判断x正负,正则输出一,负则输出-1,0则输出0,上代码。
#include
int main()
{
int x,y=0;
printf("enter x");
scanf("%d",&x); //得到数据
if(x>=0)
{
if(x==0)
{ //是零的情况下
printf("0");
}
if(x>0)
{ //正数情况下
printf("1");
}
}else{ //负数情况下
printf("-1");
}
}