为啥一定要指针哈
#include<stdio.h>
#include<stdlib.h>
int arr[] = {1,2,3,4,5};
#define N 5
#define M 3
int results[N] = {0}; //保存已经找到的结果前缀数组
int results_end = 0; //结果前缀数组有效数据下标
char str[6][10] = {"红","黄","蓝","白","黑"};
void comb(int deep, int n, int m)
{
int i = 0;
if (deep > n) // 越界递归结束
return ;
if (results_end == m) // 找到结果,打印,递归结束
{
for (i = 0; i < m; i++)
{
printf("%s ", str[*(results+i)-1]);
}
printf("\n");
return ;
}
*(results + results_end++)= *(arr+deep);
comb(deep+1, n, m); //向下一级递归
results_end--;
comb(deep+1, n, m); //向下一级递归
}
int main()
{
comb(0,N,M);
system("pause");
return 0;
}