[求助]书上的答案错误??
在做书中的一个习题是发现答案错误main()
{
int x,y,z;
x=7;y=8;z=9;
if(x>y)
x=y;y=z;z=x;
printf("x=%d y=%d z=%d\n",x,y,z);
getch();
}
用WIN-TC得到的结果是x=7 y=9 z=7
书的答案是X=7 Y=8 Z=7
还有我还是不太明白,这个语句,书上说他是IF语句。如果按照IF语句的话,当IF(X>Y)不成立的时候,就不会执行, X=Y;Y=Z;Z=X;才对呀。真是糊涂了。请高手赐教。还有,表达式成立那么又是怎么计算得出结果的??本人是菜鸟不太董。
----------------解决方案--------------------------------------------------------
你仔细看看,实际上是这样的,
#include "Stdio.h"
#include "Conio.h"
main()
{
int x,y,z;
x=7;y=8;z=9;
if(x>y)
x=y;
y=z;
z=x;
printf("x=%d y=%d z=%d\n",x,y,z);
getch();
}
x=y后面的分号就已经使if语句结束了!!!
----------------解决方案--------------------------------------------------------
应该是 7 9 7
当IF(X>Y)不成立的时候,就不会执行, X=Y;
但是会执行 y=z;z=x;
if(x>y)
{
x=y;y=z;z=x; 这样才不会执行
}
----------------解决方案--------------------------------------------------------
谢谢兄弟了。看来以后看书要看仔细了。还有书上的答案也有错的。晕呀!!!!
----------------解决方案--------------------------------------------------------
尽信书,不如无书!
----------------解决方案--------------------------------------------------------
自已动手多多调试才是学C的正道!
----------------解决方案--------------------------------------------------------
出书的家伙 ....要有道德啊..!!!
----------------解决方案--------------------------------------------------------
~~书上错的东西多了
----------------解决方案--------------------------------------------------------