你写的这段代码有一些问题(语法错误),把语法问题改正后:
#include
int main() //推荐主函数用int main()
{
int a=2,b=-1,c=2; //定义a、b、c并初始化
if(aif(b<0) c=0;
else c+=1;
printf("%d\n",c); //输出值为2
return 0;
}
这段代码相当于下面的代码,这样就好理解了:
#include
int main() //推荐主函数用int main()
{
int a=2,b=-1,c=2; //定义a、b、c并初始化
if(a{
if(b<0) c=0;
else c+=1;
}
printf("%d\n",c);
return 0;
}
当a显然a=2,b=-1 所以没执行:
if(b<0) c=0;
else c+=1;
接下来程序输出c的值,c还是2。如果那边值是1,那我肯定你是什么地方打错了,或者求助的问题和你运行的代码存在不一致!
楼主,要么就是你给的代码弄错了,要么就是答案错了,无论走的是哪一条语句,结果都不会是1的。
如果按你写的这个代码来看的话。C应该是2
至于你说的答案是1,
如果走if(b<0) c=0这句话结果就是0
如果走else c+=1这句话,结果就是3
楼主再看看是不是代码敲错了。。。
你确定你的程序没有抄错?按照格式再贴一遍吧 不要贴在标题上 太乱
百度“悬空else” 问题, 一切就都懂了
你确定你没有手误啊?