若k为2或者3,可采用2或者3重for循环
若k为未知,不知应使用多少层循环,应该使用递归
以下主函数以6个数任意两个数相加的所有结果将打印出来
#include<stdio.h>
void printNum(int *data, int n, int k, int sum, int start) {
if (k == 0) {
printf("%d\n", sum);
return;
}
int i;
for (i = start; i < n; ++i) {
printNum(data, n, k - 1, sum + data[i], i + 1);
}
}
int main() {
int data[] = { 1, 2, 3, 4, 5, 6 };
printNum(data, 6, 2, 0, 0);
system("pause");
return 0;
}