如题所述
第1个回答 2016-10-26
注意嵌套if的对应
if(a<b)
if(b<0) c=0;
else c++;
以上语句是什么意思呢?
如果a<b为真,并且b<0为真,那么把0赋给c,如果a<b为真,b<0为假,那么执行c++
如果a<b为假,那么整个if语句都不会执行,直接执行最下面的printf语句,打印c的值。
因为a的值为3,b的值为-1,所以a<b为假,所以if不会执行,直接执行printf,打印c的值,即1,选择B本回答被网友采纳
if(a<b)
if(b<0) c=0;
else c++;
以上语句是什么意思呢?
如果a<b为真,并且b<0为真,那么把0赋给c,如果a<b为真,b<0为假,那么执行c++
如果a<b为假,那么整个if语句都不会执行,直接执行最下面的printf语句,打印c的值。
因为a的值为3,b的值为-1,所以a<b为假,所以if不会执行,直接执行printf,打印c的值,即1,选择B本回答被网友采纳
第2个回答 2016-10-26
else匹配的是离它最近的if语句,在你的例子里是:
if(b<0) c=0;
else c++;
这个if是第一个if语句条件判断为真时执行。
由于第一个if(a<b)条件不满足,所以直接执行printf语句本回答被提问者采纳
if(b<0) c=0;
else c++;
这个if是第一个if语句条件判断为真时执行。
由于第一个if(a<b)条件不满足,所以直接执行printf语句本回答被提问者采纳
第3个回答 2016-10-26
#include<stdio.h>
void main()
{
int a=3,b=-1,c=1;
if(a < b)
{
if(b < 0)
{
c = 0;
}
else
{
c++;
}
}
printf("%d\n",c);
}
像这样添加括号就很明白了。
void main()
{
int a=3,b=-1,c=1;
if(a < b)
{
if(b < 0)
{
c = 0;
}
else
{
c++;
}
}
printf("%d\n",c);
}
像这样添加括号就很明白了。