你会合并数组吗?采用数组大小顺序排列合并C语言实现
发布人:shili8
发布时间:2024-11-18 15:42
阅读次数:0
**合并数组**
================在 C语言中,合并两个或多个数组是非常常见的操作。下面我们将讨论如何使用 C 来合并数组。
**问题描述**
-------------
假设有两个整型数组 `arr1` 和 `arr2`,分别包含 `n` 和 `m` 个元素。我们需要合并这两个数组,形成一个新数组 `result`,其中包含所有元素。
**解决方案**
------------为了实现这个功能,我们可以使用以下 C 函数:
c#include <stdio.h> // 合并两个数组void merge_arrays(int arr1[], int n, int arr2[], int m, int result[]) { // 将 arr1 中的元素复制到 result 中 for (int i =0; i < n; i++) { result[i] = arr1[i]; } // 将 arr2 中的元素追加到 result 中 for (int j =0; j < m; j++) { result[n + j] = arr2[j]; } } // 打印数组void print_array(int arr[], int size) { printf("["); for (int i =0; i < size; i++) { printf("%d", arr[i]); if (i != size -1) { printf(", "); } } printf("] "); } // 测试函数void test_merge_arrays() { int arr1[] = {1,3,5}; int n = sizeof(arr1) / sizeof(arr1[0]); int arr2[] = {2,4,6}; int m = sizeof(arr2) / sizeof(arr2[0]); int result[n + m]; merge_arrays(arr1, n, arr2, m, result); printf("合并后的数组:"); print_array(result, n + m); } int main() { test_merge_arrays(); return0; }
**代码解释**
-------------
在上面的 C 函数中,我们定义了一个 `merge_arrays` 函数,它接收两个整型数组 `arr1` 和 `arr2`,以及它们的大小 `n` 和 `m`。我们还定义了一个新数组 `result`,其大小为 `n + m`。
在 `merge_arrays` 函数中,我们首先将 `arr1` 中的元素复制到 `result` 中,然后追加 `arr2` 中的元素到 `result` 中。
接下来,我们定义了一个 `print_array` 函数,它用于打印数组。这个函数接受一个整型数组和其大小作为参数。
最后,我们定义了一个测试函数 `test_merge_arrays`,它创建两个示例数组 `arr1` 和 `arr2`,然后使用 `merge_arrays` 函数合并它们。我们将结果数组打印出来,以便观察到正确的输出。
**运行结果**
------------当你运行这个程序时,它会输出:
合并后的数组:[1,3,5,2,4,6]
这表明 `merge_arrays` 函数成功地将两个数组合并了起来。