c语言如何实现排列组合的程序

来源:百度知道 编辑:UC知道 时间:2024/06/23 14:17:10
例如 我输入123,出来是123 132 213 231 312 321
要输入的数字和长度都是随机的 例如 87637467 12321 321312 程序都能排出来
大虾帮忙啊!

void nn(char c,char cc[])
{//对于有重复的数据这就不行了
//虽然可以都列出来,中间有重复的可能
char tmp,*qc;
if(c=='#')printf("%s",cc);
else {
for(qc=c;qc!='#';qc++){
tmp=*c;
*c=*qc;
*qc=tmp;
cc++;
nn(qc,cc);
cc--;
tmp=*c;
*c=*qc;
*qc=tmp;
}
}
}
main()
{

char cc[100];//请以#结束
scanf("%s",&cc);
nn(cc,cc);

}