用递归做的,且不能处理有重复数字的
#define N 4
void Permutate(int* a,int k)
{
if (k == 4)
{
for (int i=0;i<3;i++)
{
fout<<a[i]<<' ';
}
fout<<endl;
}
else
{
for (int i = k; i < 4; ++i)
{
swap(a[k], a[i]);
// fout<<i<<' '<<k<<endl;
Permutate(a,k+1);
swap(a[k], a[i]);
// fout<<i<<' '<<k<<endl;
}
}
}
int main(){
int a[]={0,1,2,3};//定义4个数
Permutate(a,0);
return 0;
}