C语言获取集合幂集

思路:假设有集合中有3个元素,则该集合的幂集有23=8个子集

元素 :  1  2  3

二进制:0  0  0

    0  0  1

    0  1  0

    0  1  1

    1  0  0

    1  0  1

    1  1  0

    1  1  1

若二进制数组中对应的是1 ,则输出该元素;

若二进制数组中对应的是0 ,则不输出。

程序如下:

 1 #include "stdio.h"
 2 
 3 void main()
 4 {
 5     int i,j,k;
 6     int a[3]={1,2,3};
 7     int b[3]={0,0,0};
 8     for(j=0;j<8;j++)
 9     {
10         printf("第%d个幂集是\n{ ",j+1);
11         for(i=0;i<3;i++)
12         {
13             if(b[i]==1) printf("%d ",a[i]);
14         }
15         printf("}\n");
16         for(k=2;k>=0;k--)
17         {
18             if(b[k]==0) {b[k]=1;break;}
19             else b[k]=0;
20         }
21     }
22     scanf("%d",&i);
23 }

 

原文地址:https://www.cnblogs.com/liyanfasd/p/2510909.html