C语言编程问题!!!

设int a=9,b=8,c=7,x=1; 则if(a>7) if(b>8) if(c>9) x=2; else x=3; 后x的值是(),答案是1,哪位高手能告诉我为什么是1,而不是3?

第1个回答  2010-01-29
题目应该是这样的吧
main()
{
int a=9,b=8,c=7,x=1;
if(a>7)
{
if(b>8)
{
if(c>9)
{
x=2;
}
else
{
x=3;
}
}
}
}
程序在执行的时候,先判断a是不是大于7,经过判断确实是,于是进入第二个if进行判断看是不是b大于8,经过判断,不是,那么程序就不会执行下面了,直接跳出,所以x的值没有变,还是x=1
第2个回答  2010-01-30
else是和他前一个if搭配的,而这题在第二个if(b>8)就为假,所以x还是1.本回答被提问者采纳
第3个回答  2010-01-29
因为你的else语句是和if(c>9)对应的,当执行到if(b>8)时,直接跳出了,所以是初始化x=1;
第4个回答  2010-01-29
if里没有运算符啊