C语言if语句?
#include<stdio.h>intmain(){intx,y;printf("enterx:");scanf("%d",&x);y=0;if(x>=0)if(x>0...
#include<stdio.h>
int main()
{
int x,y;
printf("enter x:");
scanf("%d",&x);
y=0;
if(x>=0)
if(x>0)
y=1;
else
y=-1;
printf("x=%d,y=%d\n",x,y);
return 0;
}
当x<0时y不应该等于-1吗,为什么我运行时y=0呀 展开
int main()
{
int x,y;
printf("enter x:");
scanf("%d",&x);
y=0;
if(x>=0)
if(x>0)
y=1;
else
y=-1;
printf("x=%d,y=%d\n",x,y);
return 0;
}
当x<0时y不应该等于-1吗,为什么我运行时y=0呀 展开
7个回答
展开全部
您好,很高兴回答您的问题。
在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用花括号括起来即可。
在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用花括号括起来即可。
展开全部
这个应该是if...else的配对有关系,else总是跟离它最近if配对的,如果你要else跟第一if配对,应在在第一个if语句后面用打括号把第二个if语句括起来。一般if语句这些大括号最好不要省略,稍微粗心一点就很容易导致出错,而且这种错误很难找出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的else是和if(x>0)配对的,你的第二个if嵌套在第一个if里面,输入x<0时,整个判断都进不去,所以y保持初值为0被输出了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码写得就是等于零......
看着架势应该是要写一个程序,判断x正负,正则输出一,负则输出-1,0则输出0,上代码。
#include<stdio.h>
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");
}
}
看着架势应该是要写一个程序,判断x正负,正则输出一,负则输出-1,0则输出0,上代码。
#include<stdio.h>
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");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询