用c语言函数实现两个一维数组分别求两个数组的最大值最小值平均值
时间: 2024-12-17 09:18:11 浏览: 3
在C语言中,你可以创建三个函数分别用于找出两个一维数组的最大值、最小值以及计算它们的平均值。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 函数声明
double findMax(int arr1[], int n1, int arr2[], int n2);
double findMin(int arr1[], int n1, int arr2[], int n2);
double calculateAverage(int arr1[], int n1, int arr2[], int n2);
int main() {
// 示例数组
int arr1[] = {5, 10, 15};
int arr2[] = {2, 8, 12};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
double max_val = findMax(arr1, n1, arr2, n2);
double min_val = findMin(arr1, n1, arr2, n2);
double avg_val = calculateAverage(arr1, n1, arr2, n2);
printf("最大值: %.2f\n", max_val);
printf("最小值: %.2f\n", min_val);
printf("平均值: %.2f\n", avg_val);
return 0;
}
// 寻找两数组中的最大值
double findMax(int a[], int na, int b[], int nb) {
if (na > nb)
return findMax(b, nb, a, na);
else if (a[0] > b[0])
return a[0];
else
return findMax(&a[1], na - 1, &b[1], nb - 1);
}
// 寻找两数组中的最小值
double findMin(int a[], int na, int b[], int nb) {
if (na > nb)
return findMin(b, nb, a, na);
else if (a[0] < b[0])
return a[0];
else
return findMin(&a[1], na - 1, &b[1], nb - 1);
}
// 计算两数组的平均值
double calculateAverage(int a[], int na, int b[], int nb) {
double sum1 = 0, sum2 = 0;
for (int i = 0; i < na && i < nb; i++)
sum1 += a[i], sum2 += b[i];
return (sum1 + sum2) / (na + nb);
}
```
在这个例子中,`findMax` 和 `findMin` 是递归地比较两个数组元素,直到找到最大值或最小值。`calculateAverage` 则直接遍历数组计算总和并除以数组长度得到平均值。
阅读全文