模擬選拔賽評分規則:10 位評委打分(0~10 分),去掉一個最高分與一個最低分,計算剩餘 8 分的平均值。
float a[10] 儲存分數。max、min 並計算總和 sum。(sum - max - min) / 8。#include <stdio.h>
int main(void) {
float a[10], max, min, sum = 0.0f, aver;
int i;
printf("輸入成績:\n");
for (i = 0; i < 10; i++) {
printf("成績%2d: ", i + 1);
scanf("%f", &a[i]);
if (a[i] < 0 || a[i] > 10) {
printf("成績輸入有誤!請確保分數在 0-10 之間!\n");
i = -1; // 重新開始輸入
continue;
}
}
max = min = a[0];
for (i = 0; i < 10; i++) {
if (max < a[i]) max = a[i];
if (min > a[i]) min = a[i];
sum += a[i];
}
aver = (sum - max - min) / 8.0f;
printf("去掉一個最高分:%.1f\n", max);
printf("去掉一個最低分:%.1f\n", min);
printf("平均分是: %.2f\n", aver);
return 0;
}
輸入成績: 成績 1: 9.5 成績 2: 8.0 成績 3: 7.5 成績 4: 9.0 成績 5: 8.5 成績 6: 7.0 成績 7: 9.5 成績 8: 8.0 成績 9: 6.5 成績10: 8.5 去掉一個最高分:9.5 去掉一個最低分:6.5 平均分是: 8.19
if(max max=a[i]) 缺少關係運算子,應為 if(max < a[i])。i=-1 並在迴圈遞增後歸零,可簡化為 do-while 迴圈結構。#define JUDGES 10。