帮忙弄c语言编程

来源:百度知道 编辑:UC知道 时间:2024/06/15 03:36:54
大奖赛现场统分
已知:某大奖赛有n个选手参赛,m(m>2)个评委为依次参赛的选手评判打分:最高10分,最低0分。统分规则为:每个选手所得的m个得分中,去掉一个最高分,去掉一个最低分,然后平均为该选手的最后得分。要求编程:
(1)根据n个选手的最后得分,从高到低排出名次表,以便确定获奖名单;
(2)根据各选手的最后得分与各评委给该选手所评分的差距,给各个评委评分的准确性一个定量的评价。
要求:程序代码至少100条,或程序由4个以上函数组成;

仅提供我的思路,希望对你有所帮助:
设a[i][j](i=0,…,n-1;j=0…m-1) 表示j位评委给i选手的评分
Main()
{ int i,j,m,n;
float min[i],max[i],a[i][j];

For(i=0;i<n;i++)
For(j=0;j<m;j++)
a[i][j]=getf (); //评分赋初值

For(i=0;i<n;i++)
{ For(j=0;j<m;j++)
{min[i]=max[i]=a[i][j]
if(max[i] <=a[i][j+1])
max[i] =a[i][j+1];
if(min[i] >=a[i][j+1])
min[i] =a[i][j+1];
} //选择每组评分中的最高分和最低分
}
For(i=0;i<n;i++)
For(j=0;j<m;j++)
{
Average_score[j]= a[0][j];
Average_score[i]= Average_score[i]+a[i][j];
}
Average_score[i]= Average_score[i]-max[i]-min[i]);
Average_score[i]= Average_score[i]/(m-2);
} //计算出每个选手的平均得分(最后得分)
For(i=0;i<n;i++)
{
For(j=0;j<n;j++)
{ max_1[i] = Average_score[j];
if(max_1[i] <= Average_score[j+1])
max_1[i] = Average_score[j+1];-
}
Printf(max_1[i]=”%d\t”)
} //由大到小分数排