题目描述
有n个选手,m个评委,输入m个评委对n个选手的分数,然后对每个选手去掉一个最高分和
一个最低分,然后输出n个选手的平均成绩。
代码示例
#include<stdio.h>
#define N 20
#define M 5
void ReadScore(float score[][M], int n, int m);
void CountScore(float averageScore[], float score[][M], int n, int m);
void PrintScore(float averageScore[], int n);
int main()
{
float score[N][M], averageScore[N];
int n, m, i ,j;
scanf("%d %d", &n, &m);
ReadScore(score, n, m);
CountScore(averageScore, score, n, m);
PrintScore(averageScore, n);
return 0;
}
void ReadScore(float score[][M], int n, int m)
{
int i, j;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
scanf("%f", &score[i][j]);
}
}
}
void CountScore(float averageScore[], float score[][M], int n, int m)
{
float max, min, average = 0;
int i, j;
for(i = 0; i < n; i++)
{
max = min = score[i][0];
average = score[i][0];
for(j = 1; j < m; j++)
{
if(max < score[i][j])
{
max = score[i][j];
}
if(min > score[i][j])
{
min = score[i][j];
}
average += score[i][j];
}
averageScore[i] = (average - min - max) / (m - 2);
min = max = average = 0;
}
}
void PrintScore(float averageScore[], int n)
{
int i;
for(i = 0; i < n; i++)
{
printf("%.2f\n", averageScore[i]);
}
}