求任何集合的子集

#include"stdio.h"
void main()
{
    int a[100],b[100]={0},i=0,n=0,sum=1,s=0,q,j;
  do
  {  
      scanf("%d",&a
);
      n++;
      i++;
  }while(a
!=0);
  n--;
  for(i=1;i<=n;i++)
      sum=sum*2;
  for(i=0;i<sum;i++)
  {   s=0;
      printf("{");
      j=i;
      while(j!=0)
      {
          b[s++]=j%2;
          j=j/2;
      }
      for(q=0;q<n;q++)
          if(b[q])
              {
                printf("%d",a[q]);
                if(q<s-1)  printf(",");
              }
    printf("}\n");
  }
  getch();
}
posted @ 2017-09-22 23:08  lijianzhq  阅读(107)  评论(0)    收藏  举报