当前位置: 代码迷 >> C语言 >> [求助]我这个程序怎么错了?
  详细解决方案

[求助]我这个程序怎么错了?

热度:40   发布时间:2007-09-21 17:07:56.0
[求助]我这个程序怎么错了?
分别输入3 ,4 ,5对应x,y,z
main()
{
int x,y,z;
scanf("%d%d%d",&x, &y, &z);
if(x<z)
x=z;
else
x=y; z=y; y=x;
printf("%d%d%d",x, y, z);
getch();
}

用WIN-TC编译地554.可是我得545.请各位指教。
----------------解决方案--------------------------------------------------------
应该是 if(x&gt;z)
----------------解决方案--------------------------------------------------------

还有,应该是
else
x=z;


----------------解决方案--------------------------------------------------------

LZ的程序的目的是什么?


----------------解决方案--------------------------------------------------------
书上写的作业不能随便该。只是我不明白在if(x&lt;z) x=z 中根据输入的数字因该得到我得的结果。为什么不是呢??
----------------解决方案--------------------------------------------------------
以下是引用yuyangtian10在2007-9-21 17:07:56的发言:
分别输入3 ,4 ,5对应x,y,z
main()
{
int x,y,z;
scanf("%d%d%d",&x, &y, &z);
if(x<z)
x=z;
else
{x=y; z=y; y=x;}
printf("%d%d%d",x, y, z);
getch();
}

用WIN-TC编译地554.可是我得545.请各位指教。

不错都出鬼了……你现在再看看

[此贴子已经被作者于2007-9-21 17:50:17编辑过]


----------------解决方案--------------------------------------------------------

照你的那种写法,z=y和y=x是不属于else分支的。结果在x=z后又执行了z=y,y=x,结果自然是554了。


----------------解决方案--------------------------------------------------------
谢谢高手了。看来还是吃了粗心大意的亏。还有题目是这样写的。我刚开始就认为执行了第一个语句后就转到。printf了,没想到是第二个语句拖了后腿。谢谢提醒了。以后要更加注意了。
----------------解决方案--------------------------------------------------------
  相关解决方案