华为机试题解析:评委打分算法
需积分: 33 62 浏览量
更新于2024-07-26
收藏 205KB PDF 举报
"华为机试题上机总结,包括选秀节目打分算法和数组处理问题"
在华为的机试题中,我们经常会遇到一些实际应用问题的编程挑战。以下是对两道典型题目的详细分析:
1. **选秀节目打分算法**
这个问题要求编写一个`cal_score`函数,根据给定的评委打分和评委类型计算选手的最终得分。函数接受三个参数:`score[]`存储每个评委的分数,`judge_type[]`表示评委类型(1代表专家,2代表大众),`n`是评委总数。
首先,函数会检查输入是否有效,即`score[]`、`judge_type[]`是否为空以及`n`是否为零。接着,它分别计算专家评委和大众评委的总分`sum1`和`sum2`,以及它们的数量`count1`和`count2`。
如果没有大众评委(`count2==0`),则直接用专家评委的平均分作为总分。否则,根据规则计算总分:专家评委平均分的60%加上大众评委平均分的40%,最后结果取整。函数返回这个计算出的总分。
在`main`函数中,给出了一个示例输入,包含3个评委,其中2个是专家,1个是大众。调用`cal_score`函数并打印结果。
2. **数组元素重新排列**
第二题要求对给定的数组`input[]`进行操作,如果数组长度`n`是奇数,将最大元素放在新数组`output[]`的中间位置;如果`n`是偶数,题目描述不完整,通常可能需要将最大元素分别放在新数组的两端。对于这种问题,我们需要找到数组中的最大值,然后根据数组长度的奇偶性决定其放置位置。
解决这个问题的一般步骤包括:
- 初始化两个指针,一个指向数组的起始位置,另一个指向结束位置。
- 使用循环找到数组中的最大值及其索引。
- 如果数组长度为奇数,将最大值复制到`output[(n-1)/2]`,然后从最大值的索引开始,将剩余元素依次复制到`output[]`。
- 如果数组长度为偶数,情况会更复杂,可能需要将最大值分别放入`output[0]`和`output[n-1]`,然后将其他元素填充到中间位置。
这类问题通常涉及到数组遍历、比较操作、条件判断以及元素的移动。在实际编程时,需要确保边界条件的处理正确无误,避免越界访问数组。
通过这些题目,我们可以看到华为机试不仅考察基础的编程能力,还注重实际问题的解决能力和逻辑思维。准备这类机试时,应加强数据结构、算法以及常见问题的处理技巧的学习。
2016-01-07 上传
2015-04-14 上传
2021-12-05 上传
2023-03-09 上传
2023-03-09 上传
2013-11-08 上传
skdzyl1
- 粉丝: 3
- 资源: 6
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南