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成对。然后自己加大括号对好格式,用手写在纸上画明了一点。希望能帮到你!
把大括号加上就明了了
#include
void mian()
{
int a,t;
printf("请输入a的值");
scanf("%d",&a);
if(a<10) // 0小于10
{
if(a>1)
{
t=1;
}
}
else
{
t=2; // 0时,t = 2
}
}
下面自己学着加一下括号
t=2
t=未初始化
t=2
没结果
我擦,这种问题有什么好问的,自己运行一下不就知道了,再说你啥都不返回,你想问什么结果