第二题怎么用指针写速求

 

为啥一定要指针哈

#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;
}