c语言输入5个数去掉最高分去掉最低分求平均数,使用数组?

如题所述

下面是一个用 C 语言实现输入 5 个数去掉最高分去掉最低分求平均数的例子:
#include <stdio.h>
int main() {
int nums[5];
int max, min, sum;
float avg;
// 输入 5 个数
printf("请输入 5 个整数:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &nums[i]);
}
// 计算最高分和最低分
max = nums[0];
min = nums[0];
for (int i = 1; i < 5; i++) {
if (nums[i] > max) {
max = nums[i];
}
if (nums[i] < min) {
min = nums[i];
}
}
// 求和
sum = 0;
for (int i = 0; i < 5; i++) {
if (nums[i] != max && nums[i] != min) {
sum += nums[i];
}
}
// 求平均数
avg = (float)sum / 3;
// 输出结果
printf("去掉最高分和最低分后的平均数是:%.2f\n", avg);
return 0;
}
在这个例子中,我们使用了一个 nums 数组来存储输入的 5 个数。首先我们使用 scanf 函数从标准输入中读取这 5 个数,然后使用两个变量 max 和 min 来分别记录最高分和最低分。接下来,我们使用一个循环遍历数组,求出除最高分和最低分外的所有数的和。最后,我们将这个和除以 3(也就是 5 个数减去最高分和最低分剩下的 3 个数),求出平均数,并输出结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-03
可以使用数组来存储这五个数,然后找出最高分和最低分,再将剩下的三个数加起来求平均数。代码如下:
#include <stdio.h>

int main() {
int grades[5];
int sum = 0;
int max = 0;
int min = 100;

printf("请输入五个成绩:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &grades[i]);
if (grades[i] > max) { // 查找最高分
max = grades[i];
}
if (grades[i] < min) { // 查找最低分
min = grades[i];
}
sum += grades[i]; // 累加总分
}

sum = sum - max - min; // 剔除最高分和最低分
printf("平均成绩为:%.2f\n", sum / 3.0); // 计算平均成绩

return 0;
}

在这个示例中,我们先定义了一个长度为 5 的整型数组 grades,用来存储五个成绩。然后使用 for
循环读入这五个成绩,并在读入的同时查找最高分和最低分,以及累加总分。最后计算平均成绩时,需要将最高分和最低分从总分中去掉,并将剩下的分数除以
3,得到平均成绩。需要注意的是,在计算平均成绩时要用浮点数进行计算,否则可能会导致精度出错。