从 c语言 键盘输入任意一个非空集合,求集合的幂集。
时间: 2023-06-18 11:07:36 浏览: 85
论文研究-基于属性集合幂集的区间概念格.pdf
幂集指的是一个集合的所有子集构成的集合。下面是一个使用 C 语言实现的幂集计算程序:
```c
#include <stdio.h>
#include <stdlib.h>
/* 计算一个集合的幂集 */
void powerset(int set[], int set_size)
{
int pow_set_size = 1 << set_size; // 2^set_size
int i, j;
// 遍历所有子集
for (i = 0; i < pow_set_size; i++) {
printf("{ ");
// 打印当前子集中包含的元素
for (j = 0; j < set_size; j++) {
if (i & (1 << j))
printf("%d ", set[j]);
}
printf("}\n");
}
}
int main()
{
int set[100], n, i;
printf("请输入集合大小:");
scanf("%d", &n);
printf("请输入集合元素:");
for (i = 0; i < n; i++) {
scanf("%d", &set[i]);
}
powerset(set, n);
return 0;
}
```
你可以输入任意一个非空集合,例如:
```
请输入集合大小:3
请输入集合元素:1 2 3
{ }
{ 1 }
{ 2 }
{ 1 2 }
{ 3 }
{ 1 3 }
{ 2 3 }
{ 1 2 3 }
```
程序会输出该集合的所有子集构成的幂集。
阅读全文