写一个函数,实现求一维数组的最大值、最小值、平均值。函数原型: int FindArray( int a[ ],int n, int &max,&min); 函数返回平均值,形参max,min带出最大值和最小值; 并在主函数中定义整型数组,完成FindArray调用,最后输出数组的最大值、最小值、平均值。
时间: 2023-03-19 10:20:56 浏览: 57
int FindArray(int a[], int n, int mode){
int max, min, sum;
max = min = a[0];
sum = 0;
for(int i=0; i<n; i++){
if(a[i] > max) max = a[i];
if(a[i] < min) min = a[i];
sum += a[i];
}
if(mode == 0) return max;
else if(mode == 1) return min;
else if(mode == 2) return sum/n;
return 0;
}
相关问题
写一个函数,实现求一维数组的最大值、最小值、平均值。函数原型: int FindArray( int a[ ],int n, int &max,&min); 函数返回平均值,形参max,min带出最大值和最小值
int FindArray(int a[], int n, int *max, int *min, double *average)
{
int i; *max = a[0]; *min = a[0]; *average = 0;
for(i=0; i < n; i++)
{
if(a[i] > *max)
*max = a[i];
if(a[i] < *min)
*min = a[i];
*average += a[i];
}
*average /= n;
return 0;
}
求一个一维数组的最大值,最小值和平均值〔主函数调用并输出〕。用c语言
好的,下面是一段实现你需要的功能的 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` 类型来存储平均值,避免了整型除法带来的精度问题。