SDUT4165 全排列问题
代码:
#include<stdio.h>
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=0;i<=m;i++)
{
if(i==m) printf("%d",a[i]);
else printf("%d,",a[i]);
}
printf("\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()
{
int i,n,array[10],t;
scanf("%d",&t);
while(t>0)
{
t--;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&array[i]);
}
perm(array,0,n-1);
}
return 0;
}