c语言:求n个数的全排列

#include "stdio.h"

int judge(int p[],int n)
{
int i=0;
for(;i<n;i++)
{
if (p[i]==p[n])
{
return 0;
}
}
return 1;
}

void make(int p[],int n,int a)
{
int i=0;
if (n==a)
{
for (i=0;i<a;i++)
{
printf("%d ",p[i]);
}
printf("\n");

}
else
{
for(p[n]=1;p[n]<a;p[n]++)
{
if(judge(p,n))
{
make(p,n+1,a);
}
}
}
}

main()
{
int *p;
int a;
scanf("%d",&a);
p=malloc(a*sizeof(int));
make(p,0,a);
getch();
}

我的程序为什么结果不对
我是想实现1到a的全排列。

第1个回答  2011-03-11
难道数据自动生成? 就申请了空间
头文件记得加入#include <stdlib.h>
相似回答
大家正在搜