Recursion 递归-打印uniq子组

Recursion 递归-打印uniq子组,recursion,data-structures,Recursion,Data Structures,我的代码: #include <math.h> #include <stdio.h> #include <stdlib.h> void printArr(int arr[], int n) { for (int i = 0; i < n; i++) { printf(" %d ", arr[i]); } printf("\n"); } void tr8Helper(int* arr, int n,

我的代码:

#include <math.h>
#include <stdio.h>
#include <stdlib.h>


void printArr(int arr[], int n)
{
    for (int i = 0; i < n; i++)
    {

        printf(" %d ", arr[i]);
    }
    printf("\n");

}

void tr8Helper(int* arr, int n, int index, int b, int* used)
{
    if (index == n )
    {

        printArr(arr, n);

    }
    else {

        for (int i = 0; i < b; i++) {

            arr[index] = i;
            tr8Helper(arr, n, index + 1, b, used);
        }


    }

}


void tr8(int num, int b)
{
    int* myArray = (int*)malloc(num * sizeof(int));
    int* used = (int*)malloc(b * sizeof(int));
    tr8Helper(myArray, num, 0, b, used);
}

int main() {
    tr8(3, 3);
}
#包括
#包括
#包括
无效打印阵列(内部阵列[],内部网络)
{
对于(int i=0;i
这是到目前为止我的代码,这是我的递归为b=2,n=3打印的代码: 我遇到的问题是如何使用“used”数组,因此输出将是例如b=3 n=3 我很难思考这个问题,如何从上面思考。 如何告诉我的简历,我已经用过这个号码了,不要再用了。或者在打印时跳过这一行。
请与我分享您的想法和想法,也许还有一些关于如何处理此类问题的提示

从您的输入和预期输出来看,我相信当您提到“独特的子组”时。如果是这样的话,那么您只需要使用所使用的数组(在您的代码中是传递的,但实际上没有使用)。我在
tr8Helper
中添加了三行新行;没有什么需要改变的

void tr8Helper(使用了int*arr、int-n、int-index、int-b、int*{
如果(索引==n){
printArr(arr,n);
}否则{
对于(int i=0;i
请以文本形式发布您的代码,而不是图像链接。我更新了帖子