如何用C语言求出一串数字的排列组合
时间: 2024-02-21 11:59:45 浏览: 111
可以使用递归的方法来实现一串数字的排列组合。具体步骤如下:
1. 定义一个函数,输入参数为一串数字和数字个数。
2. 在函数内部,使用两个循环来交换数字的位置,从而实现数字的排列组合。
3. 递归调用函数,把数字个数减一,继续交换数字位置,直到数字个数为1时,输出排列组合结果。
下面是一个示例代码:
```c
#include <stdio.h>
void permutation(int arr[], int len, int cur)
{
if (cur == len - 1) {
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
} else {
for (int i = cur; i < len; i++) {
int temp = arr[cur];
arr[cur] = arr[i];
arr[i] = temp;
permutation(arr, len, cur + 1);
temp = arr[cur];
arr[cur] = arr[i];
arr[i] = temp;
}
}
}
int main()
{
int arr[] = {1, 2, 3};
int len = sizeof(arr) / sizeof(int);
permutation(arr, len, 0);
return 0;
}
```
这段代码可以输出数字1、2、3的所有排列组合。其中,permutation函数实现了数字的排列组合,len参数表示数字个数,cur参数表示当前处理的数字位置。在函数内部,使用两个循环交换数字位置,继续递归调用函数,直到数字个数为1时,输出排列组合结果。
阅读全文