c语言习题 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:11:53
请问最后输出的值是c 还是c+1呢 为什么?谢谢

输出的是c,因为else与最近的if配对,而if(b<0)又在if(a<b)里面,if(a<b)不成立,所以if(b<0)及else都是跳过不做的。直接printf,所以输出c,应该是7

应该是0吧,两个IF都满足了,不是赋值0给C了么!好久没看了,不知道对不对!~

我把程序改了一下,
main()
{ int a=5,b=-3,c=7;
if(a<b)
if(b<0) {printf("%d\n",a); c=0;}
else
{ printf("%d\n",b)
c++;
}
printf("%d\n",c)
}
结果还只是输出了一个7,
我认为: 先执行了if(a<b)为假,
就不执行了下面的if(b<0),也就不执行{printf("%d\n",a); c=0;}
就执行下一步,else ,而else执行最近的if(b<0),而if(b<0)为真,
所以也不执行。所以c还是7。
希望我的推断没有错,如果有问题请也告知我一声,3Q。