c语言测试输入:5 3 (n=5,r=3;,表示从1,2,3,4,5自然数中选择 3 个数) 预期输出: 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 2 1 3 2 1
时间: 2024-01-06 14:05:13 浏览: 90
C语言实验-有3个整数a,b,c,由键盘输入,输出其中最大的数(或最小的数)。
以下是使用 C 语言实现的代码,实现了从 n 个自然数中选择 r 个数的组合,并输出所有的组合情况:
```c
#include <stdio.h>
#define MAXN 100
int n, r;
int a[MAXN];
void dfs(int now, int cnt) {
if (cnt == r) {
for (int i = 0; i < r; i++)
printf("%d ", a[i]);
printf("\n");
return;
}
if (now > n)
return;
a[cnt] = now;
dfs(now + 1, cnt + 1);
dfs(now + 1, cnt);
}
int main() {
scanf("%d%d", &n, &r);
dfs(1, 0);
return 0;
}
```
输入样例为 `5 3`,输出结果如下:
```
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
```
阅读全文