實現(xiàn)合并兩個數(shù)組并去重的方法有很多種,以下是一種常用的方法:
以下是一個示例代碼:
#include <stdio.h>
#define MAX_SIZE 100
void mergeAndRemoveDuplicates(int arr1[], int size1, int arr2[], int size2, int mergedArr[], int *mergedSize) {
int i, j, k;
// 復制第一個數(shù)組中的元素到新數(shù)組
for (i = 0; i < size1; i++) {
mergedArr[i] = arr1[i];
}
*mergedSize = size1; // 合并后的數(shù)組大小
// 遍歷第二個數(shù)組
for (i = 0; i < size2; i++) {
int isDuplicate = 0;
// 判斷當前元素是否已存在于新數(shù)組中
for (j = 0; j < *mergedSize; j++) {
if (arr2[i] == mergedArr[j]) {
isDuplicate = 1;
break;
}
}
// 若不存在則將其復制到新數(shù)組中
if (!isDuplicate) {
mergedArr[*mergedSize] = arr2[i];
(*mergedSize)++;
}
}
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int arr2[] = {4, 5, 6, 7, 8};
int size2 = sizeof(arr2) / sizeof(arr2[0]);
int mergedArr[MAX_SIZE];
int mergedSize;
mergeAndRemoveDuplicates(arr1, size1, arr2, size2, mergedArr, &mergedSize);
printf("合并并去重后的數(shù)組:");
for (int i = 0; i < mergedSize; i++) {
printf("%d ", mergedArr[i]);
}
printf("\n");
return 0;
}
運行結果:
合并并去重后的數(shù)組:1 2 3 4 5 6 7 8