去掉最大值最小值求平均值
时间: 2023-09-04 10:15:18 浏览: 169
以下是 Python 代码实现:
```python
def avg_without_extremes(nums):
if len(nums) <= 2:
return 0
max_num = max(nums)
min_num = min(nums)
sum_nums = sum(nums) - max_num - min_num
return sum_nums / (len(nums) - 2)
```
该函数接收一个数字列表 `nums`,先找到其中的最大值 `max_num` 和最小值 `min_num`,再将这两个值从列表中移除,并计算剩下数字的总和 `sum_nums`,最后返回平均值 `sum_nums / (len(nums) - 2)`。
需要注意的是,如果列表中的数字个数小于等于 2,无法去掉最大值和最小值,此时返回 0。
相关问题
python 输入几个值去掉最大值最小值求平均值
好的,这个问题很简单,可以使用 Python 的列表(list)来实现。以下是一个示例代码,可以输入任意个数,去掉最大值和最小值后求平均值:
```python
nums = input("请输入一些数字,以空格分隔:")
nums_list = nums.split()
nums_list = [float(num) for num in nums_list]
if len(nums_list) < 3:
print("输入的数字不能少于3个!")
else:
nums_list.sort()
nums_list = nums_list[1:-1] # 去掉最大值和最小值
avg = sum(nums_list) / len(nums_list)
print("去掉最大值和最小值后的平均值为:", avg)
```
需要注意的是,这个代码中使用了 Python 的内置函数 `split()` 将输入的字符串分割成列表,同时使用了列表推导式将列表元素转换为浮点数。
C语言一个数组二十个元素去掉最大值最小值求平均值的代码
以下是求一个长度为20的数组去掉最大值和最小值后的平均值的C语言代码:
```c
#include <stdio.h>
int main() {
int arr[20];
int i, sum = 0, max = arr[0], min = arr[0];
float avg;
// 读入数组元素
printf("请输入20个整数:\n");
for (i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
// 求最大值、最小值、总和
for (i = 0; i < 20; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
sum += arr[i];
}
// 去掉最大值和最小值后的平均值
avg = (float)(sum - max - min) / 18;
printf("去掉最大值和最小值后的平均值为:%.2f\n", avg);
return 0;
}
```
注意,这里假设输入的20个数都是整数。如果输入的数有小数,那么需要使用 `float` 或 `double` 类型来存储数组元素和平均值。
阅读全文