C语言 大赛现场统分
大赛现场统分
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语言 大赛现场统分相关推荐
- 头歌c语言实训项目-综合案例课外练习:大奖赛现场统分
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:大奖赛现场统分 题目: 代码思路: 代码表示: 第1关:大奖赛现场统分 题目: 大奖赛现场统分 ...
- 7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分)
7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分) 贵州工程应用技术学院创建于1938年,历经贵州省立毕节师范学校.毕节半耕半读师范学校.毕节师范专科学校等时期.1993年,教育部定名为 ...
- 百c语言成绩管理程序计划书,c语言大赛策划书.doc
c语言大赛策划书 电子信息工程系 第一届 C程序设计大赛 策 划 书 主办单位:电子信息工程系 承办单位:科技协会 E时空俱乐部 电子信息工程系第一届C程序设计大赛 一.活动目的: 为了发掘同学们潜力 ...
- 国信蓝点杯第二届(2011)C语言大赛样题整合
http://blog.sina.com.cn/s/blog_44e1ec3801018d3r.html 国信蓝点杯第二届(2011)C语言大赛样题整合(2012-12-26 08:49:16) 比赛 ...
- c语言程序学生活动安排,c语言大赛活动策划
c语言大赛活动策划 C语言大赛策划书主办方:信息工程系.软件工程系分团委学生会承办方:计算机与通信协会一 .活动主题:科技点亮青春,思维创造奇迹二 .活动背景: 近年来,随着我国信息技术及相关产业的高 ...
- c语言将字母与数字分开存放,2017年计算机二级《C语言》考前提分试题及答案9...
二.程序填空题(共18分). 下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序. 例如,s所指的字符串为"d ...
- R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战
R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战 目录
- 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc
c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:04121010学生姓名: ...
- c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案
本文实例讲述了C语言实现的猴子分桃问题算法.分享给大家供大家参考,具体如下: 问题: 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份 ...
- c语言五猴分桃案例分析,C语言程序设计五猴分桃问题实验报告.doc
C语言程序设计五猴分桃问题实验报告 课 程 设 计 报 告 学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:学生姓名:赵学文指导教 ...
最新文章
- 杨桃32开发版最小核心板和底板接口定义以及各io口功能
- 关于iview、element-ui重置表单并清除校验的方法
- TensorFlow 2.0.0-RC0版发布,专注于简单性与易用性
- android编译会生成class吗,请教下Android N混合编译生成的base.art中的类在运行时最终添加到哪个classloader的问题...
- Leetcode题库 125.验证回文串(双指针 C实现)
- JEPaas代码(SQL功能表)通过SQL功能表进行表查询
- Bootstrap(导航条)
- win7装postgresql10.4
- OpenShift 4 - 运行Spark和Zeppelin大数据应用
- 如何以用户身份登录MySQL_解析:如何以普通用户的身份运行 MySQL
- 2022高教社杯 国赛数学建模 B题思路
- 我们写的程序就像我们的孩子
- 「SQL面试题库」 No_55 销售分析 I
- netty自定义通讯协议校验魔数
- Python Tkinter模块详解(后续持续补充)
- 精确度、召回率、真阳性、假阳性
- 华为云桌面,助力企业扬帆起航
- Mybatis学习笔记(三)
- 关于封包工具一上午的研究总结
- 检验c语言程序是否正确的程序,c语言实习心得体会范文