字符全排列[递归]
Description将输入的一个字符串中的所有元素进行排序并输出。
Input
不超过5个字符的字符串
Output
所有字符按出现的先后顺序全排列的结果
Sample Input
abc
Sample Output
abc
acb
bac
bca
cab
cba
新手求教,我的代码只能实现全排列,但不能实现 “所有字符按出现的先后顺序全排列”
我的代码:
#include <stdio.h>
#include<string.h>
void paixu(char a[],int k,int n)
{
int i;
char t;
if(k==n-1)
{
for(i=0;i<n;i++)
printf("%c ",a[i]);
printf("\n");
}
else
{
for(i=k;i<n;i++)
{
t=a[k];a[k]=a[i];a[i]=t;
paixu(a,k+1,n);
t=a[k];a[k]=a[i];a[i]=t;
}
}
}
int main()
{
int n;
char a[10];
scanf("%s",&a);
n=strlen(a);
paixu(a,0,n);
return 0;
}
运行结果:
abc
a b c
a c b
b a c
b c a
c b a
c a b