#include
int n,a[3]; /*a[1],a[2],…,a[n]构成n个数的一个排列*/
long count=0; /*变量count记录不同排列的个数,这里用于控制换行*/
void perm(int k) /*定义函数perm( )*/
{
int j,p,t;
if(______①k==n______) /* ==是判断符号 =是赋值符号 循环1*/
{
count++;
for(p=1;p<=n;p++) printf("%1d",a[p]); /* "%1d" 中是数字1,不是字母l 输出a[1],a[2],......a[n]*/
printf("");
if(______②count%5==0 ______) printf("\n");/* 每输出5个排列换一次行*/
return;
}/* 当k==n时,进入循环1*/
for(j=k;j<=n;j++)
{
t=a[k];a[k]=a[j];a[j]=t;/* 交换a[k]和a[j]的位置*/
______③perm(k+1)______;
t=a[k];______④a[k]=a[j]; a[j]=t______;/* 交换a[k]和a[j]的位置*/
}
}
main()
{
int i;
char s;
printf("Entry n:\n"); scanf("%d",&n); /* 输入的数存贮到n上*/
for(i=1;i<=n;i++) {
scanf("%c",s);
a[i]=s;
}
perm(0);
}