忘了转载谁的了
#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int i, k, m;
void qpl(int *list,int k,int m)
{
if (k == m)//定义k为第几个数,m为数组长度,如果k=m,则它们不进行交换,进入循环输出即可
{
for (i = 0;i <= m;i++)
{
cout << list[i];
}
cout<<endl;
}
else
{
for (int i = k;i <= m;i++)//这个循环是让他最开始一个大循环,然后从第一个数慢慢输出,然后交换位置;
{
swap(list[i], list[k]);
qpl(list, k + 1, m); //迭代很多次最后就能输出
swap(list[i], list[k]);
}
}
}
int main()
{
int n;
cin >> n;
int *list=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
cin >> list[i];
}
qpl(list, 0, n-1);
return 0;
}