先贴出代码:
#include <stdio.h>
#define N 10
int n = 0;
void swap(int *a, int *b)
{
int m;
m = *a;
*a = *b;
*b = m;
}
void perm(int list[], int k, int m)
{
int i;
if(k > m)
{
for(i = 0; i <= m; i++)
{
printf("%d", list[i]);
if(i==m)break;
printf(" ");
}
printf("\n");
n++;
}
else
{
for(i = k; i <= m; i++)
{
swap(&list[k], &list[i]);
perm(list, k + 1, m);
swap(&list[k], &list[i]);
}
}
}
int main()
{
int i,k;
int list[N];
scanf("%d",&i);
for(k=0;k<i;k++)
scanf("%d",&list[k]);
perm(list, 0, i-1);
return 0;
}
本文提供了一段使用递归方法排列整数数组并打印所有可能组合的C代码示例。通过调用`perm`函数,用户可以输入数组长度和元素值,程序将生成并展示所有排列顺序。
5232

被折叠的 条评论
为什么被折叠?



