找出不是两个数组共有的元素C语言代码
时间: 2024-11-10 15:13:55 浏览: 67
定两个整型数组,本题要求找出不是两者共有的元素.txt
在C语言中,找出两个数组中不共有的元素通常需要遍历数组,并使用位操作或者标准库函数如`std::set_difference`。以下是一个简单的示例,使用位运算来实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
void find_unique(int arr1[], int size1, int arr2[], int size2) {
// 初始化一个足够大的数组来存储所有唯一元素
int unique[size1 + size2];
int unique_size = 0;
// 将arr1的所有元素设置为1(因为它们都是唯一的)
for (int i = 0; i < size1; ++i) {
unique[i] = 1;
}
// 检查arr2中的每个元素,如果unique对应的索引位置为1,则更新unique数组
for (int j = 0; j < size2; ++j) {
if (unique[arr2[j]]) {
unique[arr2[j]] = 2; // 标记已处理
unique_size++;
}
}
// 打印不共有的元素(只存在于arr2中的)
printf("Not common elements in array2: ");
for (int i = 0; i < size2; ++i) {
if (unique[i] == 2) {
printf("%d ", i);
}
}
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {4, 5, 6, 7, 8};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int size2 = sizeof(arr2) / sizeof(arr2[0]);
find_unique(arr1, size1, arr2, size2);
return 0;
}
```
阅读全文