7. What will be the output of the following code?
#include <stdio.h>
void combination(int arr[], int n, int r, int index, int aux[], int i);
void print(int arr[], int n, int r) {
int aux[r];
combination(arr, n, r, 0, aux, 0);
}
void combination(int arr[], int n, int r, int index, int aux[], int i) {
if (index == r) {
for (int j = 0; j < r; j++)
printf("%d ", aux[j]);
printf(", ");
return;
}
if (i >= n)
return;
aux[index] = arr[i];
combination(arr, n, r, index + 1, aux, i + 1);
combination(arr, n, r, index, aux, i + 1);
}
int main() {
int arr[] = {1, 2, 2};
int r = 2;
int n = sizeof(arr) / sizeof(arr[0]);
print(arr, n, r);
return 0;
}