c语言编制一个能演示执行集合的并、交和差运算的程序。
时间: 2024-05-12 13:17:04 浏览: 20
好的,下面是这样一个程序的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 集合的最大元素个数
int main() {
int A[MAX_SIZE], B[MAX_SIZE], C[MAX_SIZE]; // 三个集合,分别用数组表示
int i, j, k;
int sizeA, sizeB, sizeC; // 三个集合的元素个数
// 输入集合A
printf("Enter the number of elements in set A (up to %d): ", MAX_SIZE);
scanf("%d", &sizeA);
printf("Enter the elements of set A (separated by space): ");
for (i = 0; i < sizeA; i++) {
scanf("%d", &A[i]);
}
// 输入集合B
printf("Enter the number of elements in set B (up to %d): ", MAX_SIZE);
scanf("%d", &sizeB);
printf("Enter the elements of set B (separated by space): ");
for (i = 0; i < sizeB; i++) {
scanf("%d", &B[i]);
}
// 计算并集
for (i = 0, j = 0, k = 0; i < sizeA && j < sizeB;) {
if (A[i] < B[j]) {
C[k++] = A[i++];
}
else if (B[j] < A[i]) {
C[k++] = B[j++];
}
else { // A[i] == B[j]
C[k++] = A[i++];
j++;
}
}
// 处理剩余元素
while (i < sizeA) {
C[k++] = A[i++];
}
while (j < sizeB) {
C[k++] = B[j++];
}
sizeC = k;
// 输出并集
printf("Union of sets A and B:\n");
for (i = 0; i < sizeC; i++) {
printf("%d ", C[i]);
}
printf("\n");
// 计算交集
for (i = 0, j = 0, k = 0; i < sizeA && j < sizeB;) {
if (A[i] < B[j]) {
i++;
}
else if (B[j] < A[i]) {
j++;
}
else { // A[i] == B[j]
C[k++] = A[i++];
j++;
}
}
sizeC = k;
// 输出交集
printf("Intersection of sets A and B:\n");
for (i = 0; i < sizeC; i++) {
printf("%d ", C[i]);
}
printf("\n");
// 计算差集
for (i = 0, j = 0, k = 0; i < sizeA;) {
if (j >= sizeB || A[i] < B[j]) {
C[k++] = A[i++];
}
else if (A[i] > B[j]) {
j++;
}
else { // A[i] == B[j]
i++;
j++;
}
}
sizeC = k;
// 输出差集
printf("Difference of sets A and B:\n");
for (i = 0; i < sizeC; i++) {
printf("%d ", C[i]);
}
printf("\n");
return 0;
}
```
该程序首先读取用户输入的两个集合A和B,然后分别计算它们的并集、交集和差集,并输出结果。以上是该程序的代码示例,如有需要还可以进行改进或优化。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)