代码如下:
//计算n个数的全排列
#include<stdio.h>
int size;
int sum=0;
void perm(int a[],int k)
{
if(k==size)
{
sum++;
for(int i=0;i<size;i++)
printf("%d ",a[i]);
printf("\n");
}
else
{
for(int i=k;i<size;i++)
{
int temp;
temp=a[i]; a[i]=a[k]; a[k]=temp;
perm(a,k+1);
temp=a[i]; a[i]=a[k]; a[k]=temp;
}
}
}
int main()
{
int a[]={1,2,3,4,5};
size=sizeof(a)/4;
perm(a,0);
printf("sum=%d\n",sum);
return 0;
}