剔除最大最小值后,计算数组元素的平均值C语言
时间: 2024-09-13 16:06:52 浏览: 53
在C语言中,剔除数组中的最大最小值后计算平均值,首先需要找出数组中的最大值和最小值,然后排除这两个值,对剩余的元素求和,最后除以剩余元素的个数得到平均值。以下是一个简单的实现示例:
```c
#include <stdio.h>
// 函数声明
void剔除最大最小值计算平均值(int arr[], int size, double *avg);
int main() {
int arr[] = {10, 20, 30, 40, 50};
int size = sizeof(arr) / sizeof(arr[0]);
double avg;
剔除最大最小值计算平均值(arr, size, &avg);
printf("剔除最大最小值后的平均值是: %f\n", avg);
return 0;
}
// 函数定义
void剔除最大最小值计算平均值(int arr[], int size, double *avg) {
int max = arr[0], min = arr[0];
double sum = 0;
int count = 0;
for (int i = 0; i < size; ++i) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
for (int i = 0; i < size; ++i) {
if (arr[i] != max && arr[i] != min) {
sum += arr[i];
count++;
}
}
if (count > 0) {
*avg = sum / count;
} else {
*avg = 0; // 当数组中所有元素都相同时,剔除最大最小值后没有元素可以计算平均值
}
}
```
这段代码定义了一个函数`剔除最大最小值计算平均值`,它接受一个整数数组`arr`和它的大小`size`,以及一个指向`double`类型的指针`avg`用于存储计算得到的平均值。函数首先遍历数组找出最大值和最小值,然后再次遍历数组计算除了最大最小值外的元素之和,并计算平均值,最后将平均值存储在`avg`指针指向的位置。
阅读全文