C语言合并两个数组并去重怎么实现

   2025-02-15 6910
核心提示:实现合并两个数组并去重的方法有很多种,以下是一种常用的方法:声明一个新的数组,用于存放合并后的结果。先将第一个数组中的元

实现合并两个数组并去重的方法有很多种,以下是一种常用的方法:

声明一个新的数组,用于存放合并后的结果。先将第一个数组中的元素逐个复制到新的数组中。遍历第二个数组,判断每个元素是否在新的数组中已存在,若不存在则将其复制到新的数组中。最后得到的新数组即为合并后去重的结果。

以下是一个示例代码:

#include <stdio.h>#define MAX_SIZE 100void mergeAndRemoveDuplicates(int arr1[], int size1, int arr2[], int size2, int mergedArr[], int *mergedSize) {    int i, j, k;        // 复制第一个数组中的元素到新数组    for (i = 0; i < size1; i++) {        mergedArr[i] = arr1[i];    }    *mergedSize = size1; // 合并后的数组大小        // 遍历第二个数组    for (i = 0; i < size2; i++) {        int isDuplicate = 0;        // 判断当前元素是否已存在于新数组中        for (j = 0; j < *mergedSize; j++) {            if (arr2[i] == mergedArr[j]) {                isDuplicate = 1;                break;            }        }        // 若不存在则将其复制到新数组中        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("合并并去重后的数组:");    for (int i = 0; i < mergedSize; i++) {        printf("%d ", mergedArr[i]);    }    printf("\n");        return 0;}

运行结果:

合并并去重后的数组:1 2 3 4 5 6 7 8

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言