去掉最大值最小值求平均值
时间: 2023-09-04 09:16:05 浏览: 79
以下是Python代码实现:
```
def avg_without_max_min(nums):
if len(nums) < 3:
return None
max_num = max(nums)
min_num = min(nums)
sum_nums = sum(nums) - max_num - min_num
avg = sum_nums / (len(nums) - 2)
return avg
```
该函数接收一个整数列表作为参数,首先判断列表长度是否小于3,如果是,则无法去掉最大值和最小值,返回None。否则,使用max()和min()函数找到列表中的最大值和最小值,并将它们从列表之和中减去,然后计算剩余数字的平均值并返回。
相关问题
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` 类型来存储数组元素和平均值。
阅读全文