前面三个没过,不知道哪里有问题
查看原帖
前面三个没过,不知道哪里有问题
1489827
MZZZZZZ楼主2025/2/3 14:17
#include <stdio.h>
void removeMinMax(int m, int arr[], float* result) {
    int sum = 0;
    int max = arr[0];
    int min = arr[0];
    for (int i = 1; i < m; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    for (int i = 0; i < m; i++) {
        if (arr[i] != max && arr[i] != min) {
            sum += arr[i];
        }
    }
    *result = (m > 2) ? (float)sum / (m - 2) : 0;
}  
int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int arr[100][100]; 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &arr[i][j]);
        }
    }
    float maxavg = -1.0f;
    for (int i = 0; i < n; i++) {
        float avg;
        removeMinMax(m, arr[i], &avg);
        if (avg > maxavg) {
            maxavg = avg;
        }
    }
    printf("%.2f\n", maxavg);
    return 0;
}

2025/2/3 14:17
加载中...