大赛现场统分

8.18大奖赛现场统分。已知某大奖赛有n个选手参赛,m(m>2)个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉一个最高分和一个最低分后,取平均分作为该选手的最后得分。 要求编程实现:
(1)根据n个选手的最后得分,从高到低输出选手的得分名次表,以确定获奖名单;
(2)根据各选手的最后得分与各评委给该选手所评分数的差距,对每个评委评分的准确性和评分水准给出一个定量的评价,从高到低输出各评委得分的名次表。


#include <stdio.h>
#include <math.h>
#define N 100
void GetScore (int a[N][N],int b[N][N],int n,int m);
void Average (int b[N][N],float c[N][N],float d[N][N],int n,int m);
void PrintRank (float c[N][N],int n);
void Accuracy (int a[N][N],float d[N][N],float e[N][N],int n,int m);
int main (void)
{int n,m,a[N][N],b[N][N];    //a用来存全部分数;b用来存去除最高最低分后的分数。float c[N][N],d[N][N],e[N][N];    //c和d均用来存选手编号及其对应的最终得分,其中c用来排序;e用来存评委的准确度(用标准差表示),并排序。scanf("%d %d",&n,&m);GetScore(a,b,n,m);Average(b,c,d,n,m);PrintRank(c,n);printf("\n");Accuracy(a,d,e,n,m);return 0;
}
//获取选手评分。二维数组,一行代表1个选手的全部得分,一列代表1个评委的全部给分。
void GetScore (int a[N][N],int b[N][N],int n,int m)
{int i,j;for (i=0;i<n;i++){for (j=0;j<m;j++){scanf("%d",&a[i][j]);b[i][j]=a[i][j];}}
}
//去掉每个选手的最高得分和最低得分后,计算出最终得分。
//将最终得分存储在二维数组中,第0列表示选手号码(第几位选手)第1列表示其对应的最终得分。
void Average (int b[N][N],float c[N][N],float d[N][N],int n,int m)
{int maxpos,minpos,i,j;float sum;for (i=0;i<n;i++){maxpos=minpos=0;for (j=0;j<m;j++){if (b[i][maxpos]<b[i][j]){maxpos=j;}if (b[i][minpos]>b[i][j]){minpos=j;}}b[i][maxpos]=b[i][minpos]=0;}for (i=0;i<n;i++){sum=0;for (j=0;j<m;j++){sum+=b[i][j];}c[i][0]=i+1;c[i][1]=sum/(m-2);d[i][0]=c[i][0];d[i][1]=c[i][1];}
}
//将所有选手的最终得分进行排序(冒泡排序),并输出。
void PrintRank (float c[N][N],int n)
{int i,count;float temp;do{count=0;for (i=n-1;i>0;i--){if (c[i][1]>c[i-1][1]){temp=c[i-1][1];c[i-1][1]=c[i][1];c[i][1]=temp;temp=c[i-1][0];c[i-1][0]=c[i][0];c[i][0]=temp;count++;}}}while (count!=0);printf("Rank    ContestantNum    Score\n");for (i=0;i<n;i++){printf("%5d%10.0f%14.2f\n",i+1,c[i][0],c[i][1]);}
}
//计算评委给分准确度,即标准差,并排名。
void Accuracy (int a[N][N],float d[N][N],float e[N][N],int n,int m)
{int i,j,count;float sum=0,temp=0;for (j=0;j<m;j++){sum=0;for (i=0;i<n;i++){sum+=pow(a[i][j]-d[i][1],2);}e[j][1]=sqrt(sum);e[j][0]=j+1;}do{count=0;for (i=m-1;i>0;i--){if (e[i][1]<e[i-1][1]){temp=e[i-1][1];e[i-1][1]=e[i][1];e[i][1]=temp;temp=e[i-1][0];e[i-1][0]=e[i][0];e[i][0]=temp;count++;}}}while (count!=0);printf("Rank    JudgeNum    Accuracy\n");for (i=0;i<m;i++){printf("%5d%8.0f%13.2f\n",i+1,e[i][0],e[i][1]);}
}

测试如下:

数据1:

3 6
1 7 8 9 7 8
4 7 8 9 9 9
9 5 6 7 6 5


数据2:

6 5
6 7 9 4 7
7 8 9 9 9
6 7 8 6 7
8 8 9 9 7
6 7 6 8 9
6 5 7 4 7


有1、、想说:
这次用了比较多的注释,因为定义的变量有点多,希望能帮助大家阅读,但即使这样,个人感觉可读性还是比较低的,希望下次有所改正。
受舍友启发,这次用了二维数组,本来想用一维数组的(我是憨憨)
代码有、长,实在太容易出错了。
程序还是不够完善的,仍需优化,大家快来纠错吧!!
(如果纠到错误希望能在评论区指出,拜托拜托

C语言 大赛现场统分相关推荐

  1. 头歌c语言实训项目-综合案例课外练习:大奖赛现场统分

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:大奖赛现场统分 题目: 代码思路: 代码表示: 第1关:大奖赛现场统分 题目: 大奖赛现场统分 ...

  2. 7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分)

    7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分) 贵州工程应用技术学院创建于1938年,历经贵州省立毕节师范学校.毕节半耕半读师范学校.毕节师范专科学校等时期.1993年,教育部定名为 ...

  3. 百c语言成绩管理程序计划书,c语言大赛策划书.doc

    c语言大赛策划书 电子信息工程系 第一届 C程序设计大赛 策 划 书 主办单位:电子信息工程系 承办单位:科技协会 E时空俱乐部 电子信息工程系第一届C程序设计大赛 一.活动目的: 为了发掘同学们潜力 ...

  4. 国信蓝点杯第二届(2011)C语言大赛样题整合

    http://blog.sina.com.cn/s/blog_44e1ec3801018d3r.html 国信蓝点杯第二届(2011)C语言大赛样题整合(2012-12-26 08:49:16) 比赛 ...

  5. c语言程序学生活动安排,c语言大赛活动策划

    c语言大赛活动策划 C语言大赛策划书主办方:信息工程系.软件工程系分团委学生会承办方:计算机与通信协会一 .活动主题:科技点亮青春,思维创造奇迹二 .活动背景: 近年来,随着我国信息技术及相关产业的高 ...

  6. c语言将字母与数字分开存放,2017年计算机二级《C语言》考前提分试题及答案9...

    二.程序填空题(共18分). 下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序. 例如,s所指的字符串为"d ...

  7. R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战

    R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战 目录

  8. 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc

    c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:04121010学生姓名: ...

  9. c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案

    本文实例讲述了C语言实现的猴子分桃问题算法.分享给大家供大家参考,具体如下: 问题: 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份 ...

  10. c语言五猴分桃案例分析,C语言程序设计五猴分桃问题实验报告.doc

    C语言程序设计五猴分桃问题实验报告 课 程 设 计 报 告 学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:学生姓名:赵学文指导教 ...

最新文章

  1. 杨桃32开发版最小核心板和底板接口定义以及各io口功能
  2. 关于iview、element-ui重置表单并清除校验的方法
  3. TensorFlow 2.0.0-RC0版发布,专注于简单性与易用性
  4. android编译会生成class吗,请教下Android N混合编译生成的base.art中的类在运行时最终添加到哪个classloader的问题...
  5. Leetcode题库 125.验证回文串(双指针 C实现)
  6. JEPaas代码(SQL功能表)通过SQL功能表进行表查询
  7. Bootstrap(导航条)
  8. win7装postgresql10.4
  9. OpenShift 4 - 运行Spark和Zeppelin大数据应用
  10. 如何以用户身份登录MySQL_解析:如何以普通用户的身份运行 MySQL
  11. 2022高教社杯 国赛数学建模 B题思路
  12. 我们写的程序就像我们的孩子
  13. 「SQL面试题库」 No_55 销售分析 I
  14. netty自定义通讯协议校验魔数
  15. Python Tkinter模块详解(后续持续补充)
  16. 精确度、召回率、真阳性、假阳性
  17. 华为云桌面,助力企业扬帆起航
  18. Mybatis学习笔记(三)
  19. 关于封包工具一上午的研究总结
  20. 检验c语言程序是否正确的程序,c语言实习心得体会范文

热门文章

  1. 如何快速查找综述类论文
  2. linux ext4 格式化工具,ext4格式化软件 mkfs.ext4 快速格式化
  3. centos误删除后文件恢复
  4. RJ45布线 568A 和568B布线标准
  5. 为什么程序员很难找到合适的另一半?
  6. 全景视频的格式转换工具
  7. 蚂蚁小程序--自学笔记
  8. Android OTA升级
  9. 《树莓派4B家庭服务器搭建指南》第六期:将RSSHub私有化部署到树莓派,并通过《嘎!RSS》订阅自己的信息流...
  10. 【学习随记】Gyro,Btn,filters_addClass