某比赛的参赛人数为n人,3<=n<=10。有5个评委对评委打分,分数为整数,5位评委的平均分为该选手的得分。
用一个二维数组存储选手的得分,每一行的5个数据,代表5个评委对该选手的评分。
从键盘输入一个整数n,之后输入n行5列的整数存储到二维数组。计算每个选手的得分,存储到dScore数组中。将该数组的元素,按照从大到小排列,最后输出分数。
编写计算和排序这两个函数
#include <stdio.h>
int a[10][5];
//最多有10个参赛选手 ,有5个评委打分
double dScore[10] ; //选手的得分,是评委5个分数求平均分
void calcData(int n)
{
int sum,j,i;
for(i = 0;i < n;i++)
{
sum = 0;
for(j = 0;j < 5;j++)
{
sum = a[i][j] +sum;
}
dScore[i] = sum/5.0;
}
} //计算每个学生得分存储到 dScore数组
void sortData(int n)
{
int i,j;
double t;
for(i = 0;i < n-1;i++)
for(j = 0;j < n-1-i;j++)
{
if(dScore[j] < dScore[j+1])
{
t = dScore[j];
dScore[j] = dScore[j+1];
dScore[j+1] = t;
}
}
}
//对dScore数组按降序(从到小)排列
int main()
{
int n; //用户输入的n,一定是位于3到10(含边界)
int i,j;
scanf("%d" ,&n); //n代表有多少个参赛选手
for(i=0; i<n; i++)
for(j=0; j<5; j++)
scanf("%d" ,&a[i][j]);
//调用函数
calcData(n) ;
sortData(n) ;
//打印选手的得分
for(i=0; i<n; i++)
printf("%.1f\n" ,dScore[i]); //1位小数,每个数据占一行
}
/* 请在这里填写答案 */