用c语言编制一个能演示执行集合的并、交和差运算的程序。
时间: 2024-06-09 22:09:10 浏览: 90
集合的并交补差
以下是一个简单的 C 语言程序,可以演示集合的并、交和差运算。
```c
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int setA[MAX_SIZE], setB[MAX_SIZE], setC[MAX_SIZE];
int sizeA, sizeB, sizeC = 0;
int i, j;
// 输入集合A
printf("Enter the size of set A: ");
scanf("%d", &sizeA);
printf("Enter the elements of set A: ");
for (i = 0; i < sizeA; i++) {
scanf("%d", &setA[i]);
}
// 输入集合B
printf("Enter the size of set B: ");
scanf("%d", &sizeB);
printf("Enter the elements of set B: ");
for (i = 0; i < sizeB; i++) {
scanf("%d", &setB[i]);
}
// 计算并集
printf("Union of set A and set B: ");
for (i = 0; i < sizeA; i++) {
setC[sizeC++] = setA[i];
}
for (i = 0; i < sizeB; i++) {
for (j = 0; j < sizeA; j++) {
if (setB[i] == setA[j]) {
break;
}
}
if (j == sizeA) {
setC[sizeC++] = setB[i];
}
}
for (i = 0; i < sizeC; i++) {
printf("%d ", setC[i]);
}
printf("\n");
// 计算交集
sizeC = 0;
printf("Intersection of set A and set B: ");
for (i = 0; i < sizeA; i++) {
for (j = 0; j < sizeB; j++) {
if (setA[i] == setB[j]) {
setC[sizeC++] = setA[i];
}
}
}
for (i = 0; i < sizeC; i++) {
printf("%d ", setC[i]);
}
printf("\n");
// 计算差集
sizeC = 0;
printf("Difference of set A and set B: ");
for (i = 0; i < sizeA; i++) {
for (j = 0; j < sizeB; j++) {
if (setA[i] == setB[j]) {
break;
}
}
if (j == sizeB) {
setC[sizeC++] = setA[i];
}
}
for (i = 0; i < sizeC; i++) {
printf("%d ", setC[i]);
}
printf("\n");
return 0;
}
```
在此程序中,我们首先声明了三个整数数组 `setA`、`setB` 和 `setC`,并定义了它们的最大大小为 `MAX_SIZE`。然后,我们输入了集合A和集合B的大小和元素,并计算它们的并集、交集和差集。
对于并集的计算,我们首先将集合A的所有元素复制到集合C中,然后对集合B的每个元素进行检查,如果它不在集合A中,则将其添加到集合C中。最后,我们输出集合C的所有元素。
对于交集的计算,我们遍历集合A的所有元素,并对集合B的每个元素进行检查,如果它也在集合A中,则将其添加到集合C中。最后,我们输出集合C的所有元素。
对于差集的计算,我们遍历集合A的所有元素,并对集合B的每个元素进行检查,如果它不在集合B中,则将其添加到集合C中。最后,我们输出集合C的所有元素。
注意,这个程序假定输入的集合中没有重复的元素。如果有重复的元素,你需要在计算之前先将其去重。
阅读全文