#include<stdio.h>
void swap(int &a,int &b) { //交换函数
int temp = a;
a = b;
b = temp;
}
void paixv(int a[],int k,int m) {
if(k == m) { //当达到最后一项时,输出数据
for(int i = 0; i < m ; i++){
printf("%d ",a[i]);
}
printf("\n");
}
else {
for(int i = k; i < m ; i++){ //确定第一个数值是多少
swap(a[k],a[i]); //产生第一个数据
paixv(a,k+1,m); //进而确定之后的数据
swap(a[i],a[k]); //把它们交换回来,以便产生下一个首数据
}
}
}
int main() { //主函数 测试
int arry[4] = {1,2,3,4,};
paixv(arry,0,4);
return 0;
}