c++问题:输出自然数1到n所有不重复的排列,即n的全排列。
帮忙看看代码错在哪里:#include<iostream>#include<cstdlib>usingnamespacestd;intn;boolb[101];inta[...
帮忙看看代码错在哪里:
#include<iostream>
#include<cstdlib>
using namespace std;
int n;
bool b[101];
int a[101];
void print()
{
int i;
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}
void tryy(n,int m)
{
int i;
for(i=1;i<=n;i++)
{if(b[i])
{a[m++]=i;
b[i]=false;
if(m==n)
print()}
else
tryy(m+1);
}
}
int main()
{
cin>>n;
int i;
memset(b,true,sizeof (b));
tryy(n,0);
system("pause");
return 0;
}
编译不通过= =
顺便看看做法有没有错~谢谢~~ 展开
#include<iostream>
#include<cstdlib>
using namespace std;
int n;
bool b[101];
int a[101];
void print()
{
int i;
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}
void tryy(n,int m)
{
int i;
for(i=1;i<=n;i++)
{if(b[i])
{a[m++]=i;
b[i]=false;
if(m==n)
print()}
else
tryy(m+1);
}
}
int main()
{
cin>>n;
int i;
memset(b,true,sizeof (b));
tryy(n,0);
system("pause");
return 0;
}
编译不通过= =
顺便看看做法有没有错~谢谢~~ 展开
展开全部
#include<iostream>
#include<cstdlib>
using namespace std;
int n;
bool b[101];
int a[101];
void print()
{
int i;
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}
void tryy(int n,int m)
{
int i;
for(i=1;i<=n;i++)
{if(b[i])
{a[m++]=i;
b[i]=false;
if(m==n)
print();}
else
tryy(n,m+1);
}
}
int main()
{
cin>>n;
int i;
memset(b,true,sizeof (b));
tryy(n,0);
system("pause");
return 0;
}
都是细节问题,以上就是编译通过的,你的代码,请采纳!谢谢!
#include<cstdlib>
using namespace std;
int n;
bool b[101];
int a[101];
void print()
{
int i;
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}
void tryy(int n,int m)
{
int i;
for(i=1;i<=n;i++)
{if(b[i])
{a[m++]=i;
b[i]=false;
if(m==n)
print();}
else
tryy(n,m+1);
}
}
int main()
{
cin>>n;
int i;
memset(b,true,sizeof (b));
tryy(n,0);
system("pause");
return 0;
}
都是细节问题,以上就是编译通过的,你的代码,请采纳!谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询