编程从键盘上输入20个整数,求去掉最大值和最小值以后那些元素的平均值
时间: 2024-05-02 16:17:52 浏览: 118
以下是Python的代码实现:
```python
num_list = []
for i in range(20):
num = int(input("请输入整数:"))
num_list.append(num)
max_num = max(num_list)
min_num = min(num_list)
num_list.remove(max_num)
num_list.remove(min_num)
avg = sum(num_list) / len(num_list)
print("去掉最大值和最小值以后的平均值为:", avg)
```
代码思路:
1. 创建一个空列表num_list;
2. 通过循环,从键盘上输入20个整数,并将它们添加到num_list中;
3. 使用max函数和min函数分别求出num_list中的最大值和最小值;
4. 使用remove函数将num_list中的最大值和最小值删除;
5. 使用sum函数和len函数求出num_list中所有元素的和与元素个数,并计算平均值;
6. 输出平均值。
相关问题
编程从键盘上输入5个整数,求去掉最大值和最小值以后那些元素的平均值
### 回答1:
首先,我们需要从键盘上输入5个整数,可以使用input()函数实现:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
c = int(input("请输入第三个整数:"))
d = int(input("请输入第四个整数:"))
e = int(input("请输入第五个整数:"))
接下来,我们需要找出这5个整数中的最大值和最小值,可以使用max()和min()函数实现:
max_num = max(a, b, c, d, e)
min_num = min(a, b, c, d, e)
然后,我们需要将最大值和最小值从这5个整数中去掉,可以使用列表和循环实现:
num_list = [a, b, c, d, e]
num_list.remove(max_num)
num_list.remove(min_num)
最后,我们需要计算剩下的3个整数的平均值,可以使用sum()和len()函数实现:
avg_num = sum(num_list) / len(num_list)
完整代码如下:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
c = int(input("请输入第三个整数:"))
d = int(input("请输入第四个整数:"))
e = int(input("请输入第五个整数:"))
max_num = max(a, b, c, d, e)
min_num = min(a, b, c, d, e)
num_list = [a, b, c, d, e]
num_list.remove(max_num)
num_list.remove(min_num)
avg_num = sum(num_list) / len(num_list)
print("去掉最大值和最小值以后的平均值为:", avg_num)
### 回答2:
该问题可以用编程语言实现,以下是一种基于Python的算法实现。
算法思路:
1. 首先用input函数从键盘输入5个整数,并将它们存储在一个列表中。
2. 对该列表进行排序,以便去掉最大值和最小值。
3. 接下来,通过切片操作去掉列表的第一个和最后一个元素,得到除去最大值和最小值以外的元素。
4. 对去掉最大值和最小值以后的元素求和,并除以剩下的元素个数,计算平均值。
5. 最后,将平均值打印出来。
算法实现:
'''
输入5个整数,求去掉最大值和最小值以后那些元素的平均值
'''
numbers = []
for i in range(5):
num = int(input("请输入第{}个整数:".format(i+1)))
numbers.append(num)
numbers.sort()
average = sum(numbers[1:-1])/len(numbers[1:-1])
print("去掉最大值和最小值后的元素的平均值为:{}".format(average))
在输入5个整数的过程中,可以使用循环语句和input函数进行输入,其中,i的取值范围为0到4,对应于第1个到第5个整数。
在对列表进行排序时,使用了sort方法,该方法默认按从小到大的顺序进行排序。
接下来,使用切片操作,去掉了列表的第一个和最后一个元素,即列表中的最小值和最大值。
最后,使用sum函数对剩余的元素求和,除以元素个数,得到平均值,并将其打印出来。
总之,该算法简单易懂,在实现过程中只需要注意基本的数据类型和语法即可。
### 回答3:
这道题可以分为两部分,先找出最大值和最小值,再求出去掉最大值和最小值以后的平均值。
首先,我们可以设置五个变量来分别存储这五个整数。然后,用一个循环来依次输入每一个变量。在输入的同时,我们可以利用if语句比较大小,找出最大值和最小值。
接下来,我们需要去掉最大值和最小值,求出剩下元素的平均值。具体方法是用一个变量来存储所有数字的和,再用另一个变量来记录去掉最大值和最小值以后剩余数字的个数。遍历整个数组,将每个数字都加到总和变量中。同时,用if语句判断是否为最大或最小值,如果不是,则将该数字个数累加到个数变量中。最后,除以个数变量得到平均值。
下面是代码实现:
```
#include <stdio.h>
int main()
{
int arr[5];
int i, max = -0x7fffffff, min = 0x7fffffff, sum = 0, count = 0;
float avg;
// 输入五个整数,并找出最大值和最小值
for (i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
}
// 计算剩下元素的平均值
for (i = 0; i < 5; i++)
{
if (arr[i] != max && arr[i] != min)
{
sum += arr[i];
count++;
}
}
avg = (float)sum / count;
printf("去掉最大值和最小值以后的平均值为:%.2f\n", avg);
return 0;
}
```
以上代码利用了循环和if语句来实现查找最大值和最小值,以及去掉最大值和最小值求平均值的功能。最后,程序输出结果为去掉最大值和最小值以后的平均值。
输入20个数 输入最大值和最小值以后那些元素的平均值c语言
实现:
```c
#include <stdio.h>
int main() {
int nums[20];
int max, min;
int i, sum = 0, count = 0;
double avg;
// 输入20个数
printf("请输入20个整数:\n");
for (i = 0; i < 20; i++) {
scanf("%d", &nums[i]);
}
// 输入最大值和最小值
printf("请输入最大值和最小值:\n");
scanf("%d%d", &max, &min);
// 计算符合条件的元素的平均值
for (i = 0; i < 20; i++) {
if (nums[i] <= max && nums[i] >= min) {
sum += nums[i];
count++;
}
}
if (count > 0) {
avg = (double) sum / count;
printf("符合条件的元素的平均值为:%.2f\n", avg);
} else {
printf("没有符合条件的元素。\n");
}
return 0;
}
```
注意点:
1. 输入最大值和最小值时,要按照顺序输入,中间不能有空格。
2. 在计算平均值时,要注意除数不能为0,需要判断是否有符合条件的元素。
阅读全文