Я сгенерировал подмножество набора. Я хочу вычислить сумму этого набора, например, вывод:
Enter the elements of main set :3
1
2
There are 8 subsets
Subset 7 = 3 1 2
Subset 6 = 1 2
Subset 5 = 3 2
Subset 4 = 2
Subset 3 = 3 1
Subset 2 = 1
Subset 1 = 3
Subset 0 =
Здесь из вывода я хочу вычислить сумму 1 + 2 + 3,1. + 2,3 + 2, ... то же самое для всех подмножеств, но сумма должна быть такой, чтобы я мог получить доступ к каждой из сумм для дальнейшего сравнения, как мне это сделать?
#include <stdio.h>
void print_subset(int subset, int *set) {
int pos=0;
printf("Subset %d = ", subset);
while (subset) {
if (subset & 1) {
printf("%d ", set[pos]);
}
subset >>= 1;
pos++;
}
printf("\n");
}
int main() {
int no_of_element=3;
int no_of_subset,x,a[50];
printf("Enter the elements of main set :");
for(x=0;x<no_of_element;x++)
scanf("%d",&a[x]);
no_of_subset= (1 << no_of_element);
printf("There are %d subsets\n", no_of_subset);
for (; no_of_subset--;) {
print_subset(no_of_subset, a);
}
}