用C语言编制一个能演示执行集合的并、交和差运算的程序。
时间: 2023-12-14 16:39:24 浏览: 108
以下是一个简单的用C语言实现集合并、交和差运算的示例程序:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
int setA[MAX_LEN], setB[MAX_LEN], setC[MAX_LEN];
int lenA, lenB, lenC;
int i, j, k;
// 输入集合A和B的元素
printf("请输入集合A的元素个数(不超过100):");
scanf("%d", &lenA);
printf("请输入集合A的元素(用空格隔开):");
for (i = 0; i < lenA; i++) {
scanf("%d", &setA[i]);
}
printf("请输入集合B的元素个数(不超过100):");
scanf("%d", &lenB);
printf("请输入集合B的元素(用空格隔开):");
for (i = 0; i < lenB; i++) {
scanf("%d", &setB[i]);
}
// 计算集合并
lenC = 0;
for (i = 0; i < lenA; i++) {
setC[lenC] = setA[i];
lenC++;
}
for (i = 0; i < lenB; i++) {
for (j = 0; j < lenA; j++) {
if (setB[i] == setA[j]) {
break;
}
}
if (j == lenA) {
// setB[i] 不在集合A中,加入集合C
setC[lenC] = setB[i];
lenC++;
}
}
// 输出集合并
printf("集合A和集合B的并为:{ ");
for (i = 0; i < lenC; i++) {
printf("%d ", setC[i]);
}
printf("}\n");
// 计算集合交
lenC = 0;
for (i = 0; i < lenA; i++) {
for (j = 0; j < lenB; j++) {
if (setA[i] == setB[j]) {
setC[lenC] = setA[i];
lenC++;
break;
}
}
}
// 输出集合交
printf("集合A和集合B的交为:{ ");
for (i = 0; i < lenC; i++) {
printf("%d ", setC[i]);
}
printf("}\n");
// 计算集合差
lenC = 0;
for (i = 0; i < lenA; i++) {
for (j = 0; j < lenB; j++) {
if (setA[i] == setB[j]) {
break;
}
}
if (j == lenB) {
// setA[i] 不在集合B中,加入集合C
setC[lenC] = setA[i];
lenC++;
}
}
// 输出集合差
printf("集合A和集合B的差为:{ ");
for (i = 0; i < lenC; i++) {
printf("%d ", setC[i]);
}
printf("}\n");
return 0;
}
```
运行程序后,可以按照提示输入集合A和B的元素,程序会自动计算集合并、交和差,并输出结果。注意,这个程序假设集合中的元素都是整数,并且集合大小不超过100。如果需要处理更大的集合,可以增加数组大小或使用动态内存分配。
阅读全文