华为机考编程题解析:评委打分与数组排序
版权申诉
5星 · 超过95%的资源 93 浏览量
更新于2024-08-20
3
收藏 11KB DOCX 举报
"华为机考试题包含了两道编程题目,主要涉及数据处理和排序算法的应用。第一题是关于选秀节目打分的计算,涉及到数组操作、条件判断以及平均数的计算。第二题要求对输入数组进行特定方式的排序,根据数组长度的奇偶性决定最大值的位置,并按照特定顺序填充剩余元素。"
详细解释:
1. **选秀节目打分计算**:
- 题目要求计算选手的总分,依据是专家评委和大众评委的打分。分数存储在`score[]`数组中,对应的评委类型存储在`judge_type[]`数组中。
- `cal_score`函数接收三个参数:`score[]`,`judge_type[]`和`n`,其中`n`表示评委总数。
- 函数通过遍历数组,分别计算专家评委和大众评委的分数总和`sum1`和`count1`(专家评委的数量)以及大众评委的分数总和`sum2`和`count2`(大众评委的数量)。
- 如果没有大众评委(`count2==0`),则总分等于专家评委的平均分,否则总分是两者平均分的加权平均(专家评委平均分的60%加上大众评委平均分的40%),结果都取整。
- 返回计算得到的总分。
2. **特定方式的数组排序**:
- 第二题要求对输入数组`input[]`进行特殊排序,生成一个新的数组`output[]`。
- 函数`sort`接收三个参数:输入数组`input[]`,其长度`n`,以及输出数组`output[]`。
- 首先找出数组`input[]`中的最大值,然后根据`n`的奇偶性确定最大值在`output[]`中的位置。
- 对于奇数长度的数组,最大值放在中间;对于偶数长度的数组,最大值放在中间偏右的位置。
- 接下来,按照从大到小的顺序,剩余元素依次填充`output[]`,遵循“一左一右”的规则,即较大的元素在较大空位的两侧交替插入。
这两个问题都考察了基本的编程能力,包括数组操作、条件判断、循环、数学计算(如平均分的计算)以及逻辑思维能力。在实际的编程面试或考试中,这类题目有助于评估应聘者的编程基础和问题解决技巧。
2021-12-27 上传
2021-12-27 上传
2021-12-27 上传
2024-05-18 上传
奔跑的朱亚文
- 粉丝: 0
- 资源: 4万+
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器