2.运用C语言开发一个“比赛评分系统”。评委打分原则:满分10分,评委打分后,去掉一个最高分和一个最低分,最后的平均分为参赛选手的最后得分(精确到小数点后两位)。要求该系统实现以下功能:
① 假设参赛人数为20人,评委为10人。(有兴趣的同学可拓展为参赛人数为n人,评委为m人)。并对参赛选手和评委分别编号,序号从1开始,顺序编号。
② 选手按编号顺序依次参加比赛,统计最后得分。
③ 比赛结束,按从高分到低分每行5人依次打印选手的得分情况。 ④ 公布选手获奖。取一等奖1名,二等奖2名,三等奖3名。
【算法分析】(用文字或流程图进行描述)
使用for循环嵌套输出每位选手的评分,然后用冒泡排序法排序,然后输出得奖人。
【源程序代码】 #include<> #include<> void main()
{ int max(float b[]); int min(float b[]); int i1,k1,j1,t,t1,b1; float tt; int ii, jj; int flag = 1; int k,m,i,b,j; float sum=0; float a[10],c[20];
printf(\评分系统\\n\
printf(\
for(b=0;b<20;b++) {
printf(\号选手:\\n\
for(i=0;i<=9;i++) {
printf(\号评委的评分是:\ scanf(\
sum+=a[i]; }
for(j=0;j<10;j++) {
c[j]=sum/10; }
printf(\ k=max(a); m=min(a);
printf(\
printf(\ printf(\最高分是:%g 最低分是:%g\\n\\n\
printf(\删除最高分最低分之后的总分是: %g\\n\\n\ printf(\这位选手的平均分是:%g\\n\\n\
c[b] = (sum-a[k]-a[m])/10;
sum = 0;
printf(\ }
for(b1=0;b1<20;b1++) {
printf(\第%d位选手的分数是:%g\\n\ }
for(ii=0;ii<20;ii++) {
for(jj=0;jj<20-ii-1;jj++) {
if(a[jj]>a[jj+1]) //如果后面的数字大于前面的数字 {
tt=c[jj];
c[jj]=c[jj+1];
c[jj+1]=tt; //就把两个数交换 } }
printf(\ }
printf(\第一名%g \
printf(\第二名%g \printf(\第三名%g \ }
int max(float b[])//最大值 { int i,k=0;
float max=b[0]; for(i=0;i<10;i++) {
if(max
return k; }
int min(float b[])//最小值 {
int i,m=0;