例5.3 有一函数
-1 (x<0)
y= 0 (x=0)
1 (x>0)
编一程序,输入一个x值,输出y值。
大括号没出来~ 应该看得懂吧?
main( )
{ int x,y;
scanf(“%d”,&x);
y= -1;
if(x!=0)
{ if(x>0) y=1;}
else y=0;
printf(“x=%d,y=%d\n”,x,y);
}
主要是
scanf(“%d”,&x);
y= -1;
这是怎么一回事?~
输入x就出y? 还是我看程序的顺序哟问题?
C语言 if嵌套
答案:3 悬赏:10
解决时间 2021-03-12 00:03
- 提问者网友:依靠
- 2021-03-11 08:20
最佳答案
- 二级知识专家网友:末路丶一枝花
- 2021-03-11 08:31
看注释,不懂可追问
void main( )
{
int x,y;
scanf("%d",&x);
y= -1; //先给y赋值-1
if(x!=0) //如果x大于0或者小于0就执行下面的
{
if(x>0) //x大于0,y就赋值1,否则什么也不操作,也就是x小于0的时候y不变还是-1
y=1;
}
else //x为0的时候y也为0
y=0;
printf("x=%d,y=%d\n",x,y);
}
void main( )
{
int x,y;
scanf("%d",&x);
y= -1; //先给y赋值-1
if(x!=0) //如果x大于0或者小于0就执行下面的
{
if(x>0) //x大于0,y就赋值1,否则什么也不操作,也就是x小于0的时候y不变还是-1
y=1;
}
else //x为0的时候y也为0
y=0;
printf("x=%d,y=%d\n",x,y);
}
全部回答
- 1楼网友:两不相欠
- 2021-03-11 10:12
y=-1只是赋值,又没有输出,
y的值只有三种情况
我们将y的初始值设为其中的一种情况
然后进行判断其他两种情况是否成立,如果有成立的,就修改y的值,
如果另外两种情况都不成立,那说明我们设置为初始值情况是成立的,那就直接输出y的值就可以了。
- 2楼网友:星痕之殇
- 2021-03-11 09:19
printf("请输入a的值");
scanf("%d",&a);
if(a<10)//a=0的时候,明显符合a<10条件,但是不符合里面嵌套的a>1条件,不做任何操作。
{
if(a>1) t=1;
}
else t=2;
printf("请输入a的值");
scanf("%d",&a);
if(a<10)//a=100,第一步验证就不符合条件,又没有else语句对应,也是什么都不做
{
if(a>1) t=1;
else t=2;
}
我还是加上第二题的实战图吧:
我初始化t为99999了,防止输出未初始化的变量。可以看到99999并没有改变。也就是说a=100的时候,没有影响到t。不要看死书了,按自己的逻辑理解吧。
总之看if 的嵌套,else总是与最近的if成对。然后自己加大括号对好格式,用手写在纸上画明了一点。希望能帮到你!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯