求一个一维数组的最大值,最小值和平均值〔主函数调用并输出〕。用c语言
时间: 2024-03-05 15:54:17 浏览: 91
好的,下面是一段实现你需要的功能的 C 代码:
```c
#include <stdio.h>
#define SIZE 5
void calc(int arr[], int size, int* max, int* min, double* avg) {
int sum = 0;
*max = arr[0];
*min = arr[0];
for (int i = 0; i < size; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
sum += arr[i];
}
*avg = (double) sum / size;
}
int main() {
int arr[SIZE] = {2, 5, 1, 8, 3};
int max, min;
double avg;
calc(arr, SIZE, &max, &min, &avg);
printf("最大值: %d\n", max);
printf("最小值: %d\n", min);
printf("平均值: %.2f\n", avg);
return 0;
}
```
这段代码中,`calc` 函数用于计算最大值、最小值和平均值,其中 `arr` 是输入的数组,`size` 是数组的大小,`max`、`min` 和 `avg` 是输出参数,分别用于存储最大值、最小值和平均值。在主函数中,我们定义了一个大小为 `SIZE` 的数组,调用 `calc` 函数计算最大值、最小值和平均值,并输出到控制台。
注意,我们用指针作为输出参数,可以在函数内部修改这些参数的值,从而实现返回多个值的效果。同时,我们使用了 `double` 类型来存储平均值,避免了整型除法带来的精度问题。
阅读全文