C语言找出两个数组不同元素
时间: 2024-11-06 19:02:01 浏览: 46
在C语言中,找出两个数组的不同元素通常需要遍历两个数组,并将未在另一个数组中存在的元素存储到结果中。下面是一个简单的示例,演示了如何使用标准库函数`memcmp()`来进行比较:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void find_unique(int arr1[], int size1, int arr2[], int size2) {
int result[size1 + size2], index = 0;
for (int i = 0; i < size1; i++) {
if (memcmp(&arr1[i], &arr2, sizeof(arr1[0])) != 0) { // 如果当前元素不等于数组2的任意元素
result[index++] = arr1[i]; // 将其添加到结果数组
}
}
for (int j = 0; j < size2 && index < size1 + size2; j++) {
if (memcmp(&arr2[j], &result[index], sizeof(arr1[0])) != 0) { // 如果数组2的元素不在结果数组中
result[index++] = arr2[j];
}
}
// 输出或处理不同元素的结果
printf("Different elements from both arrays:\n");
for (int k = 0; k < index; k++) {
printf("%d ", result[k]);
}
printf("\n");
}
int main() {
int array1[] = {1, 2, 3, 4, 5};
int array2[] = {4, 5, 6, 7, 8};
int size1 = sizeof(array1) / sizeof(array1[0]);
int size2 = sizeof(array2) / sizeof(array2[0]);
find_unique(array1, size1, array2, size2);
return 0;
}
```
在这个例子中,我们首先检查`array1`的每个元素是否与`array2`的任何元素相等,如果不等就将其添加到结果数组。接着再检查`array2`剩余的元素,如果它们也不在结果数组中,则添加。最后输出找到的所有不同元素。
阅读全文