c语言几个等长数组合并取最大值
时间: 2024-09-06 11:01:08 浏览: 31
分治法求最大字段和问题——C语言代码
在 C 语言中,如果你有多个等长数组需要合并并找出它们的最大值,你可以创建一个新的数组来存储结果,并遍历所有输入数组。这里是一个简单的示例:
```c
#include <stdio.h>
#define SIZE 5 // 假设所有数组都是这个大小
// 函数原型声明
int* mergeAndFindMax(int arr1[SIZE], int arr2[SIZE], int maxArr[SIZE]);
int main() {
int arr1[SIZE] = {1, 4, 6, 8, 9};
int arr2[SIZE] = {2, 5, 7, 10, 11};
int maxArr[SIZE]; // 存放最终结果
// 合并并找到最大值
maxArr[0] = mergeAndFindMax(arr1, arr2, maxArr)[0];
// 如果还有其他数组,可以继续添加并合并
if (sizeof(arr3) / sizeof(arr3[0])) {
maxArr[1] = mergeAndFindMax(maxArr, arr3, maxArr)[0];
// ... 其他数组的处理类似
}
for (int i = 0; i < SIZE; i++) {
printf("元素 %d 的值是: %d\n", i + 1, maxArr[i]);
}
return 0;
}
// 函数:合并两个数组并返回包含最大值的新数组
int* mergeAndFindMax(int arr1[], int arr2[], int result[]) {
int i = 0, j = 0, k = 0;
while (i < SIZE && j < SIZE) {
if (arr1[i] > arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}
// 把剩余数组的部分复制到新数组
while (i < SIZE) {
result[k++] = arr1[i++];
}
while (j < SIZE) {
result[k++] = arr2[j++];
}
return result;
}
```
阅读全文