c语言用最基础的方法合并两个有序数组(不使用指针))
时间: 2024-12-19 14:18:03 浏览: 42
在C语言中,如果不用指针,可以使用基本的循环结构和临时变量来合并两个已排序的数组。假设我们有两个整数数组`arr1`和`arr2`,它们都按升序排列,并且我们知道各自的长度`n1`和`n2`。以下是合并过程的一个简单示例:
```c
#include <stdio.h>
void mergeSorted(int arr1[], int n1, int arr2[], int n2, int result[]) {
int i = 0, j = 0, k = 0; // 定义三个索引分别对应arr1, arr2和result
// 当两个数组都有剩余元素时继续比较
while (i < n1 && j < n2) {
if (arr1[i] <= arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}
// 如果arr1还有剩余元素,直接复制
while (i < n1) {
result[k++] = arr1[i++];
}
// 如果arr2还有剩余元素,同样处理
while (j < n2) {
result[k++] = arr2[j++];
}
}
int main() {
int arr1[] = {1, 3, 5};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int arr2[] = {2, 4, 6};
int n2 = sizeof(arr2) / sizeof(arr2[0]);
int mergedArr[n1 + n2]; // 创建足够大的结果数组
mergeSorted(arr1, n1, arr2, n2, mergedArr);
for (int i = 0; i < n1 + n2; i++) {
printf("%d ", mergedArr[i]); // 输出合并后的数组
}
return 0;
}
```
这个函数会将`arr1`和`arr2`的内容按照原顺序合并到`mergedArr`中。运行上述程序,你会看到输出是`1 2 3 4 5 6`。
阅读全文
相关推荐


















