键盘输入5个整数,输出它们的所有排列组合
#include <stdio.h>
#include <stdlib.h>
void swap(int a[],int i,int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void perm(int a[],int start,int end)
{
if(start == end)
{
for(int i=0;i<end;i++)
printf("%d ",a[i]);
printf("\n");
}
else
{
for(int k=start;k<=end;k++)
{
swap(a,start,k);
perm(a,start+1,end);
swap(a,start,k);
}
}
}
int main(int argc, char const *argv[])
{
int *ms = (int *)malloc(20);
for(int i=0;i<5;i++)
{
scanf("%d",&ms[i]);
}
perm(ms,0,4);
return 0;
}
运行实例