C语言从键盘输入一个非空集合求其幂集
时间: 2023-06-26 20:03:24 浏览: 166
论文研究-基于属性集合幂集的区间概念格.pdf
幂集是指一个集合的所有子集构成的集合。对于一个非空集合,可以按照以下步骤求出其幂集:
1. 从键盘输入非空集合元素,存储到数组中。
2. 根据集合元素个数n,计算幂集大小为2^n。
3. 用二进制数表示2^n个子集,其中第i位表示第i个元素是否出现在该子集中。
4. 遍历所有2^n个子集,根据其二进制表示确定子集元素,并输出。
下面是C语言程序实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j;
printf("输入集合元素个数n:");
scanf("%d", &n);
int a[n];
printf("输入集合元素:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int m = pow(2, n); // 幂集大小为2^n
printf("该集合的幂集为:\n");
for (i = 0; i < m; i++) {
printf("{ ");
for (j = 0; j < n; j++) {
if ((i >> j) & 1) { // 第j位为1表示第j个元素出现在该子集中
printf("%d ", a[j]);
}
}
printf("}\n");
}
return 0;
}
```
例如,输入集合{1,2,3},输出其幂集为:
```
{ }
{ 1 }
{ 2 }
{ 1 2 }
{ 3 }
{ 1 3 }
{ 2 3 }
{ 1 2 3 }
```
阅读全文