我没看你后面的部分,就说第一段程序问题swap()函数必须使用传地址方式,传值方式不能达到交换的作用,因为作用域只是函数内的局部变量x和y改为void swap(int *x,int *y){ int temp=*x; *x=*y; *y=temp;}调用时传地址,即swap(&a,&b)形式。修改后你再试试你的程序对不对。