include<stdio.h> main() {int a=2,b=-1,c=2; if(a<b) if(b<0) c=0; e else c+=1; printf("%d⼀n",c)}

2024年11月29日 10:48
有5个网友回答
网友(1):

你写的这段代码有一些问题(语法错误),把语法问题改正后:
#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,那我肯定你是什么地方打错了,或者求助的问题和你运行的代码存在不一致!

网友(2):

楼主,要么就是你给的代码弄错了,要么就是答案错了,无论走的是哪一条语句,结果都不会是1的。
如果按你写的这个代码来看的话。C应该是2
至于你说的答案是1,
如果走if(b<0) c=0这句话结果就是0
如果走else c+=1这句话,结果就是3

楼主再看看是不是代码敲错了。。。

网友(3):

你确定你的程序没有抄错?按照格式再贴一遍吧 不要贴在标题上 太乱

网友(4):

百度“悬空else” 问题, 一切就都懂了

网友(5):

你确定你没有手误啊?