What will be the output for the following code?
#include <stdio.h>
void combination(int arr[], int aux[], int start, int end, int index, int r);
void print(int arr[], int n, int r)
{
int aux[r];
combination(arr, aux, 0, n-1, 0, r);
}
void combination(int arr[], int aux[], int start, int end, int index, int r)
{
if (index == r)
{
for (int j=0; j<r; j++)
printf("%d ", aux[j]);
printf(", ");
return;
}
for (int i=start; i<=end && end-i+1 >= r-index; i++)
{ aux[index] = arr[i];
combination(arr, aux, i+1, end, index+1, r);
}
}
int main()
{
int arr[] = {1, 2, 3};
int r = 2;
int n = sizeof(arr)/sizeof(arr[0]);
print(arr, n, r);
}
#include <stdio.h>
void combination(int arr[], int aux[], int start, int end, int index, int r);
void print(int arr[], int n, int r)
{
int aux[r];
combination(arr, aux, 0, n-1, 0, r);
}
void combination(int arr[], int aux[], int start, int end, int index, int r)
{
if (index == r)
{
for (int j=0; j<r; j++)
printf("%d ", aux[j]);
printf(", ");
return;
}
for (int i=start; i<=end && end-i+1 >= r-index; i++)
{ aux[index] = arr[i];
combination(arr, aux, i+1, end, index+1, r);
}
}
int main()
{
int arr[] = {1, 2, 3};
int r = 2;
int n = sizeof(arr)/sizeof(arr[0]);
print(arr, n, r);
}
A. 1 2, 1 3, 2 3
B. 1 3,1 2,2 3,
C. 1 2, 1 3, 2 3,
D. 1 2,1 3,2 3,
Answer: Option C
Join The Discussion