void subset(int s[],int f[],int m,int n)
{
int i;
f[m] = 0; //标记该元素出现
if (m == n)
{ printf("{");
for(i = 0; i <= n; i++)
{
if (f[i] == 0) printf(" ");
else printf("%d ",s[i]);
}
printf("}/n");
}
else subset(s,f,m+1,n);
f[m] = 1; //标记该元素不出现
if (m == n)
{ printf("{");
for(i = 0; i <= n; i++)
{
if (f[i] == 0) printf(" ");
else printf("%d ",s[i]);
}
printf("}/n");
}
else subset(s,f,m+1,n);
}
void main()
{
int a[3] = {1,2,3},flag[3];
subset(a,flag,0,2);
}