c语言编程实现集合的运算
时间: 2023-09-26 20:07:29 浏览: 278
C语言中没有内置的集合数据类型,但可以使用数组来模拟集合,并通过遍历数组来实现集合的运算。下面是一个简单的 C 代码实现:
```c
#include <stdio.h>
int main() {
int set1[] = {1, 2, 3};
int set2[] = {2, 3, 4};
int union_set[6], intersection_set[3], difference_set[3];
int i, j, k, l, m, n;
// 计算并集
k = 0;
for (i = 0; i < 3; i++) {
union_set[k++] = set1[i];
}
for (j = 0; j < 3; j++) {
if (!contains(set1, set2[j])) {
union_set[k++] = set2[j];
}
}
printf("并集:{");
for (l = 0; l < k; l++) {
printf("%d", union_set[l]);
if (l < k - 1) {
printf(",");
}
}
printf("}\n");
// 计算交集
k = 0;
for (i = 0; i < 3; i++) {
if (contains(set2, set1[i])) {
intersection_set[k++] = set1[i];
}
}
printf("交集:{");
for (l = 0; l < k; l++) {
printf("%d", intersection_set[l]);
if (l < k - 1) {
printf(",");
}
}
printf("}\n");
// 计算差集
k = 0;
for (i = 0; i < 3; i++) {
if (!contains(set2, set1[i])) {
difference_set[k++] = set1[i];
}
}
printf("差集:{");
for (l = 0; l < k; l++) {
printf("%d", difference_set[l]);
if (l < k - 1) {
printf(",");
}
}
printf("}\n");
return 0;
}
// 判断一个元素是否在集合中
int contains(int set[], int element) {
int i;
for (i = 0; i < 3; i++) {
if (set[i] == element) {
return 1;
}
}
return 0;
}
```
输出结果为:
```
并集:{1,2,3,4}
交集:{2,3}
差集:{1}
```
其中 `contains()` 函数用于判断一个元素是否在集合中,`union_set`、`intersection_set` 和 `difference_set` 分别用于存储并集、交集和差集。
阅读全文