法一:
#include
法二:
#include
void swap(int *p, int *q)
{
int temp = *p;
*p = *q;
*q = temp;
}
void perm(int a[], int k, int m)
{
int i;
if(k == m)
{
for(i = 1; i <= m; i++)
{
printf("%d%c", a[i], i == m?'\n':',');
}
}
else
{
for(i = k; i <= m; i++)
{
swap(&a[k], &a[i]);
perm(a, k + 1, m);
swap(&a[k], &a[i]);
}
}
}
int main(void)
{
int t, i, n, a[11];
while(~scanf("%d", &t))
{
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
}
perm(a, 1, n);
}
return 0;
}