某選秀節目有 5 位評委打分,分為專家評委與大眾評委兩類。計分規則:
輸入:5 行,每行包含分數(0-100)與評委類型(0=專家,1=大眾)。輸出最終總分(保留 2 位小數)。
#include <stdio.h>
#define N 5
#define EXPERT 0
#define GENERAL 1
double cal_score(int score[], int judge_type[]) {
int expert_sum = 0, expert_cnt = 0;
int general_sum = 0, general_cnt = 0;
for (int i = 0; i < N; ++i) {
if (judge_type[i] == EXPERT) {
expert_sum += score[i];
expert_cnt++;
} else {
general_sum += score[i];
general_cnt++;
}
}
double total = expert_sum;
if (general_cnt > 0)
total += (double)general_sum / general_cnt;
return total;
}
int main() {
int score[N], judge_type[N];
for (int i = 0; i < N; ++i) {
if (scanf("%d %d", &score[i], &judge_type[i]) != 2) return 1;
if (score[i] < 0 || score[i] > 100 || judge_type[i] < 0 || judge_type[i] > 1) {
printf("Invalid input\n");
return 1;
}
}
printf("%.2f\n", cal_score(score, judge_type));
return 0;
}
double 後再除,否則整數截斷導致誤差。%.2f 保證兩位小數,符合題目要求。