C语言输出两个数组中唯一不同的元素
时间: 2024-10-29 17:15:14 浏览: 25
在C语言中,如果你有两个数组并想要找出它们之间唯一的不同元素,你可以通过两层循环来遍历这两个数组,并用临时变量存储第一个数组中未找到的值。下面是一个简单的示例:
```c
#include <stdio.h>
void find_unique(int arr1[], int arr2[], int size1, int size2) {
int i, j, diff;
for (i = 0; i < size1; i++) {
diff = -1;
for (j = 0; j < size2; j++) {
if (arr1[i] == arr2[j]) {
diff = j; // 找到匹配项的位置
break;
}
}
if (diff == -1) { // 如果没找到匹配,说明它是唯一不同的
printf("Array 1 unique element at index %d is %d\n", i, arr1[i]);
} else {
// 将arr2的这个元素替换为已知的不同元素
arr2[j] = -1; // 或者用其他标记手段表示它已经被找到
}
}
// 现在arr2中非标记的元素就是第二个数组独有的
for (i = 0; i < size2; i++) {
if (arr2[i] != -1 && arr1[arr2[i]] != arr2[i]) {
printf("Array 2 unique element at index %d is %d\n", i, arr2[i]);
}
}
}
int main() {
int array1[] = {1, 2, 3, 4, 5};
int array2[] = {2, 4, 6, 7, 8};
int size1 = sizeof(array1) / sizeof(array1[0]);
int size2 = sizeof(array2) / sizeof(array2[0]);
find_unique(array1, array2, size1, size2);
return 0;
}
```
在这个例子中,我们首先查找第一个数组中的每个元素在第二个数组中的位置,如果找不到就认为它是唯一的。然后我们标记出第二个数组中已经找到的元素,最后再次检查哪些元素既不在第一个数组的标记内也不等于自身,这就是第二个数组独有的。
阅读全文