帮我用C语言写一个对五个数去掉一个最大值,去掉一个最小值后取平均值的函数
时间: 2023-05-23 21:02:02 浏览: 55
以下是一个用C语言实现的函数,用于计算五个数去掉一个最大值和一个最小值后的平均值:
```c
double avg_without_extremes(double a, double b, double c, double d, double e) {
double sum = a + b + c + d + e;
double max = a > b ? (a > c ? (a > d ? (a > e ? a : e) : (d > e ? d : e)) : (c > d ? (c > e ? c : e) : (d > e ? d : e))) : (b > c ? (b > d ? (b > e ? b : e) : (d > e ? d : e)) : (c > d ? (c > e ? c : e) : (d > e ? d : e)));
double min = a < b ? (a < c ? (a < d ? (a < e ? a : e) : (d < e ? d : e)) : (c < d ? (c < e ? c : e) : (d < e ? d : e))) : (b < c ? (b < d ? (b < e ? b : e) : (d < e ? d : e)) : (c < d ? (c < e ? c : e) : (d < e ? d : e)));
sum -= max + min;
return sum / 3;
}
```
用法示例:
```c
double result = avg_without_extremes(5.5, 2.0, 4.5, 3.0, 6.5);
printf("Average without extremes: %lf\n", result);
```
输出:
```
Average without extremes: 4.000000
```