news 2026/4/14 8:07:21

华为OD机试真题双机位C卷 【评委评分】C语言实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD机试真题双机位C卷 【评委评分】C语言实现

评委评分

2025华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型

华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解

题目描述

一个有N个选手参加比赛,选手编号为1~N(3<=N<=100),有M(3<=M<=10)个评委对选手进行打分。

打分规则为每个评委对选手打分,最高分10分,最低分1分。

请计算得分最多的3位选手的编号。 如果得分相同,则得分高分值最多的选手排名靠前

(10分数量相同,则比较9分的数量,以此类推,用例中不会出现多个选手得分完全相同的情况)。

输入描述

第一行为半角逗号分割的两个正整数,第一个数字表示M(3<=M<=10)个评委,第二个数字表示N(3<=N<=100)个选手。

第2到M+1行是半角逗号分割的整数序列,表示评委为每个选手的打分,0号下标数字表示1号选手分数,1号下标数字表示2号选手分数,依次类推。

输出描述

选手前3名的编号。

注:若输入异常,输出-1,如M、N、打分不在范围内。

用例1

输入

4,5 10,6,9,7,6 9,10,6,7,5 8,10,6,5,10 9,10,8,4,9

输出

2,1,5

说明

第一行代表有4个评委,5个选手参加比赛

矩阵代表是4*5,每个数字是选手的编号,每一行代表一个评委对选手的打分排序,

2号选手得分36分排第1,1号选手36分排第2,5号选手30分(2号10分值有3个,1号10分值只有1个,所以2号排第一)

用例2

输入

2,5 7,3,5,4,2 8,5,4,4,3

输出

-1

说明

只有2个评委,要求最少为3个评委。

用例3

输入

4,2 8,5 5,6 10,4 8,9

输出

-1

说明

只有两名选手参加

用例4

输入

4,5 11,6,9,7,8 9,10,6,7,8 8,10,6,9,7 9,10,8,6,7

输出

-1

说明

第一个评委给第一个选手打分11,无效分数

题解

思路

考点:字符串处理 + 字符串排序

  1. 自定义结构体Person,存储每个选手的编号、总分和各分数数量。
  2. 接收输入数据,记录每个选手获得的总分以及获得各种评分的数量。
  3. 自定义排序:按照总分进行从大到小排序,总分相等按照高评分数量进行排序
  4. 输出排序之后的前3名选手下标。

额外注意:接收输入n , m以及每个选手打分的score的数据范围时判断是否合法。不合法直接输出-1.

code

#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMAX_M10#defineMAX_N100typedefstruct{intid;// 选手编号inttotalScore;// 总分intscore[11];// 各分数数量 1~10}Person;// 排序函数:先按总分降序,再按高分数量降序intcompare(constvoid*a,constvoid*b){Person*p1=(Person*)a;Person*p2=(Person*)b;if(p2->totalScore!=p1->totalScore)returnp2->totalScore-p1->totalScore;for(inti=10;i>=1;i--){if(p2->score[i]!=p1->score[i])returnp2->score[i]-p1->score[i];}return0;}intmain(){intM,N;if(scanf("%d,%d\n",&M,&N)!=2)return0;// 检查合法性if(M<3||M>10||N<3||N>100){printf("-1\n");return0;}Person sports[MAX_N];// 初始化for(inti=0;i<N;i++){sports[i].id=i+1;sports[i].totalScore=0;memset(sports[i].score,0,sizeof(sports[i].score));}charline[500];for(intj=0;j<M;j++){if(!fgets(line,sizeof(line),stdin))return0;intidx=0;// 进行输入根据,分割并进行合法性检验char*token=strtok(line,",");while(token!=NULL){intscore=atoi(token);if(score<1||score>10){printf("-1\n");return0;}sports[idx].totalScore+=score;sports[idx].score[score]++;idx++;token=strtok(NULL,",");}}// 自定义排序规则qsort(sports,N,sizeof(Person),compare);// 输出结果printf("%d,%d,%d\n",sports[0].id,sports[1].id,sports[2].id);return0;}

其它语言题解链接

华为OD机试双机位C卷 - 评委评分 (C++ & Python & JAVA & JS & GO)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 14:30:58

MySQL 创建新用户及授予权限的完整流程

1. 连接到MySQL数据库 首先&#xff0c;以管理员身份连接到MySQL数据库&#xff0c;通常是root用户&#xff1a; mysql -u root -p系统会提示输入管理员用户的密码&#xff0c;输入密码后进入MySQL的命令行。 2. 创建新用户 使用CREATE USER命令来创建一个新的MySQL用户。这个命…

作者头像 李华
网站建设 2026/4/7 16:37:34

Linux部署Redis集群

Redis简介 Redis (REmote DIctionary Server) 是一个高性能的 key-value 数据库&#xff0c;完全开源&#xff0c;遵守 BSD 协议。 Redis 与其他 key - value 缓存产品相比有以下三个特点&#xff1a; Redis支持数据持久化&#xff0c;可以将内存中的数据保存在磁盘中&#…

作者头像 李华
网站建设 2026/4/13 10:24:23

vulnhub靶场实战系列-1.靶场实战平台介绍|课程笔记|网络安全|

1-1-为什么需要靶场平台_笔记 一、网络安全大师课&#xfeff;00:05 1. 课程介绍&#xfeff;00:09 课程目标&#xff1a;帮助学员建立对网络安全行业的整体认知&#xff0c;了解网络安全对国家和社会的作用&#xff0c;避免"一叶障目&#xff0c;不见森林"的情况。课…

作者头像 李华
网站建设 2026/4/12 13:03:33

Linux安装Redis以及Redis三种启动方式

目录树 一、安装前的软件准备二、Redis的安装三、Redis的三种启动方式&#xff01;&#xff01;&#xff01; 1、直接启动Redis2.后台进程方式启动Redis3.通过开机启动方式 四、Window上桌面连接Linux上的Redis 一、安装前的软件准备 Xshell —— 连接Linux并操作其终端的软…

作者头像 李华
网站建设 2026/4/10 11:22:42

导师推荐!MBA毕业论文必备!10款AI论文写作软件TOP10测评

导师推荐&#xff01;MBA毕业论文必备&#xff01;10款AI论文写作软件TOP10测评 2026年MBA论文写作工具测评&#xff1a;为何需要一份专业榜单&#xff1f; 随着人工智能技术的不断发展&#xff0c;AI写作工具已成为MBA学生撰写毕业论文的重要辅助工具。然而&#xff0c;面对市…

作者头像 李华
网站建设 2026/4/7 14:09:17

AI 开源知识库大战:WeKnora、RAGFlow、FastGPT、FlashRAG,谁更厉害

我看大家对目前的开源RAG知识库都挺感兴趣的&#xff0c;就像来对比一下目前比较流行的几个知识库&#xff0c;看看哪个更适合你&#xff0c;哪个更有钱途&#xff0c;哈哈。 其实真要搭过这几个知识库&#xff0c;就会发现&#xff1a;每个用到的地方&#xff0c;还真不一样&a…

作者头像 李华