1、 输入2-20个大于0的正整数(1、2、3或者100、200、300),输入0作为结束,0不参与排列。
2、 输出这几个整数的全排列,每个数之间用半角“,”隔开,中间不要有空格,每个排列单独一行。
#include<iostream>
using namespace std;
int quanPaiLie(int a[], int p, int q, int n)
{
int i;
if (p == q)
{
cout << a[0];
for (int i = 1; i < n; i++)
{
cout << "," << a[i];
}
cout << endl;
}
else {
for (i = p; i <= q; i++)
{
swap(a[p], a[i]);
quanPaiLie(a, p + 1, q,n);
swap(a[p], a[i]);
}
}
return 0;
}
int main()
{
int* a = new int[21];
cout << "Input" << endl;
int index = 0;
int input;
cin >> input;
while (input && index != 21)
{
a[index] = input;
cin >> input;
index++;
}
cout << "Output" << endl;
int result=quanPaiLie(a, 0, index - 1, index);
cout << "end" << result << endl;
}