C语言-数字的全排列
Posted 灯火阑处
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言-数字的全排列相关的知识,希望对你有一定的参考价值。
输入一个数字序列a1,a2,...,an,将该序列进行排列,并输出每一种排列方式。例如:1,3,5.该数列就有6种排列方式。利用递归不难实现
#define max 100
void Perm(int a[], int n, int s, int r[], int m)
int i, j, k, flag = 0;
int b[max];
for (i = 0; i < n; ++i)
flag = 1;
r[s] = a[i];
j = 0;
for (k = 0; k < n; k++)
if (i != k)
b[j] = a[k];
j++;
Perm(b, n - 1, s + 1, r, m);
if (flag == 0)
printf("\\n");
for (k = 0; k < m; k++)
printf("%d", r[k]);
printf("\\n");
int main(int argc, const char *argv[])
int a[max], r[max];
int i, n;
printf("Please input the number of digit in the array\\n");
scanf("%d", &n);
printf("Please input a string for array\\n");
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
Perm(a, n, 0, r, n);
return 0;
结果:
以上是关于C语言-数字的全排列的主要内容,如果未能解决你的问题,请参考以下文章
求n个数的全排列,n不定。用c语言。用于银行家算法中求安全序列