华为秋招上机题解:综合评分算法实现

5星 · 超过95%的资源 需积分: 42 1.1k 下载量 173 浏览量 更新于2024-09-15 18 收藏 77KB DOC 举报
这段代码是关于一个名为`cal_score`的函数,它用于计算选秀节目中选手的最终得分。该函数适用于华为秋季校招的上机题目,主要处理专家评委和大众评委的评分机制。以下是详细的知识点解析: 1. **输入参数**: - `score[]`: 一个整数数组,包含每位评委对选手的评分,长度为`N`。 - `judge_type[]`: 一个整数数组,对应于`score[]`,表示评委类型。`1`代表专家评委,`2`代表大众评委。 - `n`: 一个整数,表示评委总数。 2. **计算过程**: - 函数首先初始化变量`expert`和`dazhong`来分别存储专家评委和大众评委的总分,以及一个计数器`number`记录专家评委的数量。 - 使用`for`循环遍历`score[]`和`judge_type[]`数组。如果当前评委是专家(`judge_type[i] == 1`),则将他们的分数累加到`expert`并增加计数器`number`。 - 如果所有评委都是专家(`number == N`),则直接计算专家评委平均分,赋值给`zongfen`,然后返回整数形式的平均分。 - 否则,意味着有大众评委,先分别计算专家和大众评委的平均分,分别为`expert / number`和`(dazhong / (N - number))`。然后根据给定的权重(专家占60%,大众占40%)计算总分,即`0.6 * expert + 0.4 * dazhong`,结果取整后返回。 3. **主函数`main()`**: - 定义两个数组`score[]`和`judge_type[]`,分别用于存储评委分数和评委类型。 - 初始化一个整数变量`numberlast`,用于在循环结束后检查评委类型是否一致(全专家或全大众评委)。 4. **应用场景**: 在华为秋季校招的上机考试中,这个函数用于模拟选秀节目的评分系统,确保公平地整合专家和大众评委的意见,最终给出参赛者总分。考生需要理解评委类型的处理逻辑,熟练运用这个函数实现给定评分规则。 这段代码的核心功能是根据给定的评委评分和类型,合理计算选手的综合得分,并在没有大众评委时仅考虑专家评分。这对于理解平均分计算、权重分配以及数组操作在实际编程中的应用具有重要意义。考生在准备华为上机考试时,掌握此类问题有助于提升编程能力,尤其是在处理数据和算法方面的实践。