给出一个数组,打印出这个数组的所有的子数组,比如,数组A={1,2},则它的子数组是1,2,{1,2}
//
//一个数组中,打印出这个数组的所有组合
void Print_Combination(int *array,int n)
{
//int flag[10]={0},count=0;
int *flag=(int*)malloc(sizeof(int)*n),count=0;
memset(flag,0,sizeof(int)*n); //对标志数组清零,
while(true)
{
for (int i=0;i<n;i++)
{
if (0==flag[i])
{
flag[i]=1;
continue;
}
else
{
flag[i]=0;
break;
}
}
for (i=0;i<n;i++)
{
if (flag[i]==1)
{
printf("%d",array[i]);
}
}
printf("\n");
count++;
if (count==31)//总共有2^n个组合。这里我把n设定为5,所以是32个
{
break;
}
}
free(flag);
}