C语言从键盘输入5个整数去掉最大值和最小值求平均数
时间: 2024-12-10 13:38:35 浏览: 159
在C语言中,你可以通过以下几个步骤从键盘输入五个整数,然后计算并去掉最大值和最小值后的平均数:
- 首先,你需要定义一个数组来存储这五个整数,并初始化为0。例如,
int numbers[5] = {0};
- 然后使用
scanf()
函数获取用户输入的五个整数,记得给数组下标,如numbers[i] = scanf("%d", &i);
- 接下来,遍历数组找到最大值和最小值,可以分别用两个变量
max
和min
记录,初始时设为数组的第一个元素。遍历时比较当前元素和已知的最大值、最小值。 - 创建两个临时变量
temp_max
和temp_min
用于存放暂时的最大值和最小值,当发现新的最大值或最小值时,更新这两个变量。 - 当找到最大值和最小值后,将数组的第一个元素(假设是最小值)和最后一个元素(假设是最大值)置零,因为我们要删除它们。
- 由于数组长度减少2,我们需要重新计算剩余元素的总和和数量。使用一个新的变量
sum
记录总和,count
记录剩下的有效元素。 - 计算剩余元素的平均值,即
average = sum / (count - 2)
。 - 最后,打印出计算出的平均值。
以下是示例代码片段:
#include <stdio.h>
int main() {
int numbers[5], i, max, min, temp_max, temp_min, sum = 0, count = 5;
// 初始化数组
for (i = 0; i < 5; i++) {
numbers[i] = scanf("%d", &i);
if (i == 0) {
max = min = numbers[i];
} else {
if (numbers[i] > max) {
temp_max = max;
max = numbers[i];
} else if (numbers[i] < min) {
temp_min = min;
min = numbers[i];
}
}
}
// 更新最大值和最小值的位置
numbers[0] = temp_min;
numbers[count - 1] = temp_max;
// 删除最大值和最小值
count -= 2;
// 计算新平均值
for (i = 1; i < count; i++) {
sum += numbers[i];
}
double average = (double) sum / count;
printf("去掉最大值和最小值后的平均数是 %.2f\n", average);
return 0;
}
相关推荐

















