写一个函数,该函数是对一个数组中的元素去掉最大最小值求平均值
时间: 2023-11-27 13:51:38 浏览: 131
以下是一个 Python 函数,它可以对一个数组中的元素去掉最大和最小值后进行平均值计算:
```python
def average_without_extremes(arr):
if len(arr) < 3:
return None
sum = 0
min_val = float('inf')
max_val = float('-inf')
for val in arr:
if val < min_val:
min_val = val
if val > max_val:
max_val = val
sum += val
return (sum - min_val - max_val) / (len(arr) - 2)
```
这个函数首先检查数组的长度是否大于等于3,因为如果不是,那么就没有足够的元素来求平均值。然后,它使用两个变量 `min_val` 和 `max_val` 来记录数组中的最小值和最大值。接下来,它遍历整个数组,将每个元素加到 `sum` 变量中,并在遍历过程中更新最小值和最大值。最后,函数返回去掉最大值和最小值后的平均值。
相关问题
用C语言写一个函数,该函数是对一个数组中的元素去掉最大最小值求平均值
以下是使用 C 语言编写的函数,该函数可以对一个数组中的元素去掉最大值和最小值,然后计算平均值。
```c
#include <stdio.h>
float average_without_min_max(int arr[], int size) {
int min = arr[0];
int max = arr[0];
int sum = 0;
int count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
sum += arr[i];
count++;
}
return (float)(sum - min - max) / (count - 2);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
float result = average_without_min_max(arr, size);
printf("Average without min and max: %.2f\n", result);
return 0;
}
```
在这个函数中,我们首先定义了一个 `min` 和 `max` 变量,用于存储数组中的最小值和最大值。然后我们遍历整个数组来计算总和并计算数组中的元素数量。在遍历数组的过程中,我们还会更新最小值和最大值。
最后,我们从总和中减去最小值和最大值,并将结果除以元素数量减去 2,以获得平均值。
写一个函数,实现求一维数组的最大值、最小值、平均值。函数原型: int FindArray( int a[ ],int n, int &max,&min); 函数返回平均值,形参max,min带出最大值和最小值; 并在主函数中定义整型数组,完成FindArray调用,最后输出数组的最大值、最小值、平均值。
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;
}
阅读全文