用c语言求两个集合的交集 并集 环集 差集
时间: 2023-08-14 07:06:39 浏览: 270
假设集合 A 和 B 分别用数组 a 和 b 表示,数组长度分别为 n 和 m。下面是 C 语言求解两个集合的交集、并集、差集和环集的代码示例:
1. 交集
交集是指包含在集合 A 和集合 B 中的相同元素。可以通过遍历 a 和 b 数组,将它们中相同的元素添加到结果数组中即可。
```
int result[100];
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i] == b[j]) {
result[count++] = a[i];
break;
}
}
}
// 输出结果数组
for (int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
```
2. 并集
并集是指包含在集合 A 或集合 B 中的所有元素。可以将 a 和 b 数组中的元素全部添加到结果数组中,最后去重即可。
```
int result[200];
int count = 0;
// 将 a 数组中的元素添加到结果数组中
for (int i = 0; i < n; i++) {
result[count++] = a[i];
}
// 将 b 数组中的元素添加到结果数组中
for (int i = 0; i < m; i++) {
result[count++] = b[i];
}
// 去重
for (int i = 0; i < count; i++) {
for (int j = i + 1; j < count; j++) {
if (result[i] == result[j]) {
// 将重复的元素删除
for (int k = j; k < count - 1; k++) {
result[k] = result[k + 1];
}
count--;
j--;
}
}
}
// 输出结果数组
for (int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
```
3. 差集
差集是指包含在集合 A 中但不在集合 B 中的元素。可以遍历 a 数组,将不在 b 数组中的元素添加到结果数组中。
```
int result[100];
int count = 0;
for (int i = 0; i < n; i++) {
int flag = 1;
for (int j = 0; j < m; j++) {
if (a[i] == b[j]) {
flag = 0;
break;
}
}
if (flag == 1) {
result[count++] = a[i];
}
}
// 输出结果数组
for (int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
```
4. 环集
环集是指同时属于集合 A 和集合 B 的元素。可以遍历 a 数组,将同时存在于 a 和 b 数组中的元素添加到结果数组中。
```
int result[100];
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i] == b[j]) {
result[count++] = a[i];
break;
}
}
}
// 输出结果数组
for (int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
```
以上就是 C 语言求解两个集合的交集、并集、差集和环集的代码示例,希望能够对您有所帮助。
阅读全文