编制一个能演示执行集合的并、交和差运算c语言的程序。
时间: 2024-06-09 21:09:22 浏览: 96
编制一个演示集合的并、交和差运算的程序
5星 · 资源好评率100%
以下是一个简单的演示执行集合并、交和差运算的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;
int i, j, k;
// 输入集合A
printf("Enter the size of set A: ");
scanf("%d", &sizeA);
printf("Enter the elements of set A:\n");
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:\n");
for (i = 0; i < sizeB; i++) {
scanf("%d", &setB[i]);
}
// 集合并
sizeC = sizeA + sizeB;
k = 0;
for (i = 0; i < sizeA; i++) {
setC[k++] = setA[i];
}
for (i = 0; i < sizeB; i++) {
int isDuplicate = 0;
for (j = 0; j < sizeA; j++) {
if (setB[i] == setA[j]) {
isDuplicate = 1;
break;
}
}
if (!isDuplicate) {
setC[k++] = setB[i];
}
}
// 输出集合并
printf("Set A union B:\n");
for (i = 0; i < k; i++) {
printf("%d ", setC[i]);
}
printf("\n");
// 集合交
k = 0;
for (i = 0; i < sizeA; i++) {
for (j = 0; j < sizeB; j++) {
if (setA[i] == setB[j]) {
setC[k++] = setA[i];
break;
}
}
}
// 输出集合交
printf("Set A intersection B:\n");
for (i = 0; i < k; i++) {
printf("%d ", setC[i]);
}
printf("\n");
// 集合差
k = 0;
for (i = 0; i < sizeA; i++) {
int isDuplicate = 0;
for (j = 0; j < sizeB; j++) {
if (setA[i] == setB[j]) {
isDuplicate = 1;
break;
}
}
if (!isDuplicate) {
setC[k++] = setA[i];
}
}
// 输出集合差
printf("Set A difference B:\n");
for (i = 0; i < k; i++) {
printf("%d ", setC[i]);
}
printf("\n");
return 0;
}
```
注意,这个程序假定集合元素是整数,且不包含重复元素。如果需要处理其他类型的元素或包含重复元素的集合,需要进行相应的修改。
阅读全文