已知两个集合A和B,现要求一个新的集合A=A∪B。设: A=(7,5,3,11),B=(2,6,3),合并后,A=(7,5,3,11,2,6)。用C语言实现
时间: 2024-09-26 20:03:33 浏览: 53
在C语言中,你可以使用数组或动态数组(如`struct`、`union`或自定义数据结构)来表示集合,并使用循环或者迭代器的方式来合并两个集合。这里我们简单地假设使用数组。以下是合并两个整数数组的一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define SIZE_A 4
#define SIZE_B 3
// 定义一个整数数组来存储集合
int A[SIZE_A] = {7, 5, 3, 11}; // 集合A
int B[SIZE_B] = {2, 6, 3}; // 集合B
// 函数用于合并两个数组并添加到A数组中
void merge(int* A, int* B, int* C, int size_a, int size_b) {
int i = 0, j = 0, k = 0; // 初始化索引
while (i < size_a && j < size_b) {
if (A[i] < B[j]) {
C[k++] = A[i++];
} else {
C[k++] = B[j++];
}
}
// 将剩余的元素添加到结果数组
while (i < size_a) {
C[k++] = A[i++];
}
while (j < size_b) {
C[k++] = B[j++];
}
}
int main() {
int result[SIZE_A + SIZE_B]; // 新数组C,大小等于A和B之和
int size_result = sizeof(result) / sizeof(result[0]);
// 调用合并函数并将结果存储在result数组中
merge(A, B, result, SIZE_A, SIZE_B);
printf("合并后的数组A: ");
for (int i = 0; i < size_result; i++) {
printf("%d ", result[i]);
}
printf("\n");
return 0;
}
```
当你运行这个程序,它会输出合并后的数组`A`,即 `7, 5, 3, 11, 2, 6`。
阅读全文