c语言去掉数组最大最小值求平均值
时间: 2025-04-17 07:43:45 浏览: 41
### C语言实现去掉数组最大最小值后求平均值
在C语言中,可以通过遍历数组找到最大值和最小值及其索引位置,随后再次遍历时跳过这两个特殊值并累加其余数值最终计算平均值。下面给出具体代码示例:
```c
#include <stdio.h>
// 函数用于寻找最大值的位置
int findMaxIndex(int *array, int size) {
int maxIndex = 0;
for (int i = 1; i < size; ++i) {
if (array[i] > array[maxIndex]) {
maxIndex = i;
}
}
return maxIndex;
}
// 函数用于寻找最小值的位置
int findMinIndex(int *array, int size) {
int minIndex = 0;
for (int i = 1; i < size; ++i) {
if (array[i] < array[minIndex]) {
minIndex = i;
}
}
return minIndex;
}
int main() {
int arr[10];
// 输入十个整数到数组中
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 获取数组长度
int sz = sizeof(arr) / sizeof(arr[0]);
// 寻找最大值和最小值的索引
int maxIdx = findMaxIndex(arr, sz);
int minIdx = findMinIndex(arr, sz);
double sum = 0;
// 计算除了最大值和最小值之外其他元素总和
for (int k = 0; k < sz; k++) {
if (k != maxIdx && k != minIdx) {
sum += arr[k];
}
}
// 输出不包含最大值和最小值得所有元素之和以及其平均值
printf("Sum without max and min: %f\n", sum);
printf("Average excluding max and min: %f\n", sum / (sz - 2));
return 0;
}
```
此程序首先定义了两个辅助函数`findMaxIndex()` 和 `findMinIndex()` 来分别获取给定数组中的最大值和最小值所在的索引[^1]。
接着,在主函数内通过循环读入用户输入的数据存储于数组之中;之后调用上述两函数获得最大值与最小值对应的位置信息,并据此排除这两项数据的影响完成剩余各项数值相加之操作;最后打印出不含极端值情况下整个序列成员合计量及相应均值结果。
阅读全文
相关推荐

















