输入abcd,然后在其中任取三个元素进行全排列,输出所有情况
以下是我写的代码,可以运行但是不能输出
#include<iostream>
#include<string>
using namespace std;
bool a[100];
char b[100];
string d;
void dfs(int p,int r)
{
if(p==r-1)
{
for(int i=0;i<r;i++)
{
cout<<b[i];
if(i==r-1)cout<<endl;
return;
}
}
for(int i=0;i<r;i++)
{
if(a[i]!=0)
{
b[i]=d[i];
a[i]=1;
dfs(p+1,r);
a[i]=0;
}
}
}
int main()
{
cin>>d;
int r;
cin>>r;
dfs(0,r);
return 0;
}
以下是我写的代码,可以运行但是不能输出
#include<iostream>
#include<string>
using namespace std;
bool a[100];
char b[100];
string d;
void dfs(int p,int r)
{
if(p==r-1)
{
for(int i=0;i<r;i++)
{
cout<<b[i];
if(i==r-1)cout<<endl;
return;
}
}
for(int i=0;i<r;i++)
{
if(a[i]!=0)
{
b[i]=d[i];
a[i]=1;
dfs(p+1,r);
a[i]=0;
}
}
}
int main()
{
cin>>d;
int r;
cin>>r;
dfs(0,r);
return 0;
}



