在 C 语言中,处理数组的交集(两个数组共有的元素集合)和并集(两个数组所有元素的集合)是常见的操作。这些操作可以通过遍历数组元素并进行比较来实现。让我们来看一下如何在 C 语言中生成数组的交集和并集。### 生成数组交集要生成两个数组的交集,我们需要遍历第一个数组中的元素,并检查这些元素是否存在于第二个数组中。若存在,则将该元素添加到交集数组中。
c#include void intersection(int arr1[], int arr2[], int m, int n) { printf("数组交集:"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (arr1[i] == arr2[j]) { printf("%d ", arr1[i]); break; } } }}int main() { int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = {3, 4, 5, 6, 7}; int m = sizeof(arr1) / sizeof(arr1[0]); int n = sizeof(arr2) / sizeof(arr2[0]); intersection(arr1, arr2, m, n); return 0;}
c#include void unionSet(int arr1[], int arr2[], int m, int n) { printf("%数组并集:"); int mergedArr[m + n]; int mergedIndex = 0; for (int i = 0; i < m; i++) { mergedArr[mergedIndex++] = arr1[i]; } for (int i = 0; i < n; i++) { int flag = 0; for (int j = 0; j < m; j++) { if (arr2[i] == arr1[j]) { flag = 1; break; } } if (!flag) { mergedArr[mergedIndex++] = arr2[i]; } } for (int i = 0; i < mergedIndex; i++) { printf("%d ", mergedArr[i]); }}int main() { int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = {3, 4, 5, 6, 7}; int m = sizeof(arr1) / sizeof(arr1[0]); int n = sizeof(arr2) / sizeof(arr2[0]); unionSet(arr1, arr2, m, n); return 0;}
以上代码展示了如何在 C 语言中生成两个数组的交集和并集。通过比较元素并适当地操作数组,我们可以轻松地实现这些常见的集合操作。