选秀节目打分算法实现

需积分: 50 0 下载量 97 浏览量 更新于2024-07-23 收藏 170KB DOC 举报
"该资源是一道华为公司机试题目,涉及选秀节目的评分系统设计。要求编写一个`cal_score`函数,根据给定的专家评委和大众评委的分数数组以及他们的类型计算选手的最终得分。评分规则是按照专家评委和大众评委的平均分加权求和,其中专家评委的权重为60%,大众评委的权重为40%。如果不存在大众评委,则仅取专家评委的平均分为最终得分。" 在该机试题中,我们需要理解以下几个关键知识点: 1. 数据结构与数组: - `score[]` 数组存储了所有评委的打分,而 `judge_type[]` 数组则记录了这些分数对应的评委类型(1 代表专家,2 代表大众)。 - 这两个数组是同步的,即 `score[i]` 和 `judge_type[i]` 对应同一个评委的评分和类型。 2. 变量定义: - `expert` 用于累加专家评委的分数,`dazhong` 用于累加大众评委的分数。 - `number` 记录专家评委的数量,`zongfen` 存储最终的总分。 3. 循环遍历: - 使用 `for` 循环遍历 `score[]` 和 `judge_type[]` 数组,通过判断 `judge_type[i]` 的值来区分并累加专家和大众评委的分数。 4. 平均分计算: - 当计算平均分时,需要将总数除以评委数量,并使用 `(int)` 进行整数取整。 5. 加权求和: - 如果存在大众评委,计算专家评委的平均分(`expert/number`)和大众评委的平均分(`dazhong/(N-number)`),然后根据规则(0.6 和 0.4 的权重)计算总分。 - 若没有大众评委,总分直接取专家评委的平均分为整数值。 6. 函数接口: - 函数 `cal_score` 接受三个参数:分数数组 `score[]`,评委类型数组 `judge_type[]`,以及评委总数 `n`,返回选手的最终得分。 7. 主程序流程: - 在 `main` 函数中,用户被要求输入 `N` 个评委的分数和对应类型,然后调用 `cal_score` 函数计算得分并输出。 这道题目旨在考察编程者对数组操作、条件判断、循环逻辑、数学计算以及函数设计的理解和应用能力。通过解决此问题,可以提高处理实际问题的编程技巧,同时加深对数据处理和算法设计的认识。