评分与排名题目描述:在PK造船大赛的半决赛现场,有一批选手(假设为7人)参加比赛,并有5位评委给选手打分。打完分后,所有评委分数的和为该选手的最后得分。排名次有一条规则是:最后得分越高,名次越低(靠前)。当半决赛结束时,要在现场按照选手的出场顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续排,不用考虑同名次的选手人数。请编程实现组委会的评分和排名工作。输入:7行,每行5个数,表示5个评委对7位选手的评分。输出:2行,第1行为7位选手的最后得分(按出场顺序);第2行为每位选手的最后排名。
2条回答 默认 最新
- 技术专家团-小桥流水 2021-11-29 01:00关注
代码如下:
#include <stdio.h> int main() { int a[7][5],i,j,t; int total[7],pm[7],mc=1,index[7]; for(i=0;i<7;i++) { total[i]=0; index[i]=i; for(j=0;j<5;j++) { scanf("%d",&a[i][j]); total[i] += a[i][j]; } } //显示总成绩 for(i=0;i<7;i++) { if(i<6) printf("%d ",total[i]); else printf("%d\n",total[i]); } //根据总成绩排名 for (i=0;i<6;i++) { for (j=0;j<6-i;j++) { if(total[j]<total[j+1]) { t=total[j]; total[j]=total[j+1]; total[j+1] = t; //交换索引 t = index[j]; index[j]=index[j+1]; index[j+1]=t; } } } //显示名次 t = index[i]; pm[t] = mc; for (i=1;i<7;i++) { t = index[i]; if(total[i]== total[i-1]) { pm[t]=mc; }else { mc++; pm[t]=mc; } } for (i=0;i<7;i++) { if(i<6) printf("%d ",pm[i]); else printf("%d\n",pm[i]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应
- ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
- ¥100 连续两帧图像高速减法
- ¥15 组策略中的计算机配置策略无法下发
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)