编写演讲比赛评分程序,假定有10个选手,5个评委,选手的得分是去掉一个最高分和一个最低分的平均分。计算出每个选手的平均分,并按从高分到低分的顺序输出所有选手的得分。
时间: 2023-04-14 07:01:17 浏览: 99
这道题目需要编写一个程序来进行演讲比赛的评分。假设有10个选手和5个评委,选手的得分是去掉一个最高分和一个最低分的平均分。我们需要计算出每个选手的平均分,并按照从高分到低分的顺序输出所有选手的得分。
具体实现的步骤如下:
1. 定义一个二维数组来存储每个选手的得分,数组的行数为选手的数量,列数为评委的数量。
2. 通过循环来输入每个选手的得分,同时计算出去掉最高分和最低分的平均分。
3. 将每个选手的平均分存储到一个一维数组中。
4. 对一维数组进行排序,按照从高分到低分的顺序输出所有选手的得分。
代码示例:
#include <stdio.h>
#include <stdlib.h>
#define N 10 //选手数量
#define M 5 //评委数量
int main()
{
int score[N][M]; //存储每个选手的得分
int avg[N]; //存储每个选手的平均分
int i, j, sum, max, min;
//输入每个选手的得分
for(i = ; i < N; i++)
{
printf("请输入第%d个选手的%d个得分:\n", i+1, M);
sum = ;
max = ;
min = 100;
for(j = ; j < M; j++)
{
scanf("%d", &score[i][j]);
sum += score[i][j];
if(score[i][j] > max)
max = score[i][j];
if(score[i][j] < min)
min = score[i][j];
}
avg[i] = (sum - max - min) / (M - 2); //计算平均分
}
//按照从高分到低分的顺序输出所有选手的得分
printf("所有选手的得分如下:\n");
for(i = ; i < N; i++)
{
for(j = i+1; j < N; j++)
{
if(avg[i] < avg[j])
{
int temp = avg[i];
avg[i] = avg[j];
avg[j] = temp;
}
}
printf("第%d名选手的得分为:%d\n", i+1, avg[i]);
}
return ;
}
阅读全文