c++字符排序问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:19:46
三个字符不重复排序,并打印出所有情况,例如

输入 abc 打印出 abc , acb,bac,bca,cab,cba

运用算法实现 不能用数组

请高手指教

这个很简单啊
char *p="abc";
char *tmp1, *tmp2;
tmp1=p;
while( *tmp1!='\0')
{
tmp2=p;
cout<<*tmp1;
while( *tmp2!='\0')
{
if( tmp2!=tmp1)
cout<<*tmp2;
}
cout<<endl;
}
现写的,没调试

#include<iostream>
using namespace std;
long n;
int way[10000];
bool use[10000];
void cou()
{
for (long a=1;a<=n;++a)
printf("%d",way[a]);
printf("\n");
}
void search(int x)
{
if (x==n+1) cou();
else
for (int a=1;a<=n;++a)
if (!use[a])
{
way[x]=a;
use[a]=true;
search(x+1);
use[a]=false;
}
}
int main()
{
//freopen("1.in","r",stdin);
//freopen("1.out","w",stdout);
memset(use,false,10000);
scanf("%d",&n);
search