c语言评委打分求平均值问题

img

img


我这个代码不知道怎么样才可以去掉一个最高分和一个最低分,求帮助

img

先找到最大值max和最小值min
最后全部数据加起来的和sum再减去max和mix sum = sum - max - min
然后再除以评委个数减2 比如评委总共是i个
最后结果就是
(sum -max -min)/(i - 2)

很简单,用两个变量存最大值最小值即可。
我帮你实现了一个版本,供你参考。如果对你有帮助,望采纳。


#include <stdio.h>
#include <limits.h>

int main() {
    int n, a;
    while (scanf("%d", &n) == 1) {
        double sum = 0;
        int max = 0, min = INT_MAX;
        for (int i = 1; i <= n; i++) {
            scanf("%d", &a);
            if (a > max) {
                max = a;
            } else if (a < min) {
                min = a;
            }
            sum += a;
        }
        printf("%.3lf\n", (sum - max - min) / (n - 2));
    }
    return 0;
}

思路:比如从终端输入10个数并进行求和,两两比较找出最大值和最小值
用总和减去最大值和最小值除8即可得平均值