编程实现求解两个集合的并集、差 集(使用c++)
时间: 2023-03-20 08:02:36 浏览: 127
C++求两个集合的并集
求解两个集合的并集、差集可以使用C语言来实现。
以下是求解两个集合的并集的C代码实现:
```c
#include <stdio.h>
#define MAXSIZE 100
// 求两个集合的并集
void unionSet(int A[], int B[], int C[], int lenA, int lenB)
{
int i, j, k;
for (i = 0; i < lenA; i++) {
C[i] = A[i];
}
k = i;
for (j = 0; j < lenB; j++) {
for (i = 0; i < lenA; i++) {
if (B[j] == A[i]) {
break;
}
}
if (i == lenA) {
C[k++] = B[j];
}
}
}
// 求两个集合的差集
void diffSet(int A[], int B[], int C[], int lenA, int lenB)
{
int i, j, k;
k = 0;
for (i = 0; i < lenA; i++) {
for (j = 0; j < lenB; j++) {
if (A[i] == B[j]) {
break;
}
}
if (j == lenB) {
C[k++] = A[i];
}
}
}
int main()
{
int A[MAXSIZE] = {1, 2, 3, 4, 5};
int B[MAXSIZE] = {4, 5, 6, 7, 8};
int C[MAXSIZE * 2] = {0};
int D[MAXSIZE] = {0};
int i, lenA, lenB;
lenA = sizeof(A) / sizeof(A[0]);
lenB = sizeof(B) / sizeof(B[0]);
// 求并集
unionSet(A, B, C, lenA, lenB);
printf("A 和 B 的并集为:\n");
for (i = 0; i < lenA + lenB; i++) {
if (C[i] != 0) {
printf("%d ", C[i]);
}
}
printf("\n");
// 求差集
diffSet(A, B, D, lenA, lenB);
printf("A 和 B 的差集为:\n");
for (i = 0; i < lenA; i++) {
if (D[i] != 0) {
printf("%d ", D[i]);
}
}
printf("\n");
return 0;
}
```
注意,该代码实现是将集合看作数组,并且数组元素不能重复。在实际应用中,可能需要根据具体需求进行修改。
阅读全文