Hi, I was trying to write a C program that lists all of the subsets of the set {1,2,...,n}. The program should be ask number of elements in the set from the keyboard, and the order must be shown in the example.
For example;
Enter the number of elements: 3
The subsets of {1,2,3} are :
1.<Empty set>
2. {1}
3. {2}
4. {3}
5. {1,2}
6. {1,3}
7. {2,3}
8. {1,2,3}
Here is my codes, I have trouble, when I entered 5,4, or 3. (Basiccally entered>=3) It doesnt show all subsets, I spend too much time for this code and I dont wanna get bad grade. Can anybody help me to fix this code, Where şs the problem, and how to fix it?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include<stdio.h>
int main(){
int sayi,subset,i,j,start,index,a[50],x;
printf("Enter the number of elements :");
scanf("%d",&sayi);
for(x=0;x<sayi;x++){
a[x]=x+1;
}
printf("The subsets are :\n");
for(subset=1;subset<=sayi;subset++){
for(start=0;start<=sayi-subset;start++){
if(subset==1)
printf("{%d}\n",a[start]);
else{
index=start+subset-1;
for(j=index;j<sayi;j++){
for(i=start;i<index;i++)
printf("{%d}",a[i]);
printf("{%d}\n",a[j]);
}
}
}
}
printf("{ }");
}
| |