输入n,输出n的全排列
例如:
输入:
3
输出:
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1
#include<stdio.h>
#include<string.h>
int flag[10],a[10],n;
void print(){
for(int i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[n-1]);
}
void listput(int b){
if(b==n)
print();
else{
for(int i=1;i<=n;i++)
if(!flag[i]){
a[b]=i;
flag[i]=1;
listput(b+1);
flag[i]=0;
}
}
}
int main(){
memset(flag,0,sizeof(flag));
scanf("%d",&n);
listput(0);
return 0;
}