多組測試數據。每組第一個整數 n (2 < n ≤ 100) 為評委人數,隨後 n 個分數(整數或浮點)。規則:去掉一個最高分、一個最低分,其餘求平均,輸出保留兩位小數。
n 及 n 個分數sum、max、min(sum - max - min) / (n - 2)printf("%.2f\n", avg) 輸出#include <stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
double score, sum = 0, max = -1, min = 101; // 分數範圍隱含 0-100
for (int i = 0; i < n; i++) {
scanf("%lf", &score);
sum += score;
if (score > max) max = score;
if (score < min) min = score;
}
double avg = (sum - max - min) / (n - 2);
printf("%.2f\n", avg);
}
return 0;
}
max 初始設為 -1,min 設為 101(題目分數隱含 0-100),確保首次比較正確double 累加避免精度損失,%.2f 自動四捨五入while (scanf(...) != EOF) 循環讀取至文件結尾輸入: 3 99 98 97 4 100 99 98 97 輸出: 98.00 98.50
驗證:第一組 (99+98+97-99-97)/1 = 98;第二組 (100+99+98+97-100-97)/2 = 197/2 = 98.5。