当前位置:实例文章 » 其他实例» [文章]你会合并数组吗?采用数组大小顺序排列合并C语言实现

你会合并数组吗?采用数组大小顺序排列合并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` 函数成功地将两个数组合并了起来。

相关标签:
其他信息

其他资源

Top