我是c初学者,有个程序,不知哪里不对?谢谢了!
#include<stdio.h>
void main()
{
int x,y,z,t;
scanf("%dx",&x);
scanf("%dy",&y);
scanf("%dz",&z);
if(x>y){x=t,x=y,y=t;}
if(x>z){x=t,x=z,z=t;}
if(y>z){y=t,y=z,z=t;}
printf("x y z")
}
参考答案:这段代码的关键错误是你值交换部分代码写的不对,例如if(x>y){x=t,x=y,y=t;}
在x=t时,t中并没有任何值,而且是将t的值赋给x。即使t中有值,在x=y时,y的值又会将x中的t值覆盖。
正确的交换代码应该是
if(x>y){t=x,x=y,y=t;}
printf("x y z")也是一个很重要的方面,你要注意啊!!!