您的位置:首页 > 其它

生成一个整数集合的所有子集

2009-10-16 17:39 423 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: