刘邦斩白蛇的故事:请高手给我分析一下这个程序的执行过程,为什么输出的结果是c 的原值?

来源:百度文库 编辑:高校问答 时间:2024/04/29 00:25:58
main()
{int a=2 ,b=-1 ,c=2;
if(a<b)
if(b<0) c=0;
else c+=1;
printf("%d\n",c);
}
当把输出项的c换成a或b,又不能输出结果,为什么?

把程序整理一下:

main()
{

int a=2,b=-1,c=2;

if(a<b)
{

if(b<0)
{
c=0;
{
else
{
c+=1;
}

}

printf("%d\n",c);

}

看明白了吗?因为a=2,b=-1,所以a<b不成立,所以后面的语句就都不执行了。

你的第二个问题没听懂,还望说清楚点。

我给你规范了一下代码,看下面的规范代码你应该能明白为什么了呵呵:

main()
{int a=2 ,b=-1 ,c=2;
if(a<b)
{
if(b<0)
{
c=0;
}
else
{
c+=1;
}
}
printf("%d\n",c);
}

由于a不小于b所以所有的if里面的内容都没执行,注意else是和第2个if对应的

上面XD手好快啊哈哈,我和楼上意思一样

我和上面分析的一样
楼主看来是个初学者啊,
没关系,一步步来吧,

在调试的时候更简单的问题都解决不了! 上面的分析的很透彻!