找出两个数组不同项c语言
时间: 2024-11-19 09:16:25 浏览: 53
在C语言中,找出两个数组的不同项可以采用多种方法,比如使用循环和临时数组、哈希表或者指针。这里我会演示一种基本的逐元素比较的方法:
```c
#include <stdio.h>
void find_diff(int arr1[], int arr2[], int n1, int n2, int diff[]) {
int i = 0, j = 0;
while (i < n1 && j < n2) {
if (arr1[i] != arr2[j]) {
diff[i] = arr1[i];
diff[n1 + j] = arr2[j]; // 如果一个是另一个的值,将另一个也添加到结果数组
i++;
j++; // 指向下一个未比较的元素
} else {
i++; // 如果相等,继续检查下一个arr1元素
}
}
// 如果arr2有剩余元素
while (j < n2) {
diff[i++] = arr2[j++];
}
// 如果arr1有剩余元素
while (i < n1) {
diff[i++] = arr1[i];
}
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {4, 5, 6, 7, 8};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
int diff[n1 + n2];
find_diff(arr1, arr2, n1, n2, diff);
printf("Different elements in the two arrays are: ");
for (int k = 0; k < n1 + n2; k++) {
printf("%d ", diff[k]);
}
return 0;
}
```
在这个例子中,`find_diff`函数接收两个数组,它们的长度以及一个用于存储不同元素的临时数组`diff`。它通过遍历两个数组,当发现元素不同时就将它们存入`diff`。注意这只是一个基础版本,实际应用可能会更复杂,例如处理空数组或优化查找过程。
阅读全文