华为公司2012届校园招聘软件类上机考试样题 -初级题

选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,
judge_type[] 里存储与 score[] 数组对应的评委类别,
judge_type[i] == 1,表示专家评委,judge_type[i] == 2,表示大众评委,n表示评委总数。
打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,
总分 = 专家评委平均分 * 0.6 + 大众评委 * 0.4,总分取整。如果没有大众评委,
则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分。
函数接口 int cal_score(int score[], int judge_type[], int n)

#include "stdafx.h"
#include <iostream>
#include "math.h"
using namespace std;
#define MAX 65535

int cal_score(int score[], int judge_type[], int n)
{
    int sum1 = 0, num1 = 0;
    int sum2 = 0, num2 = 0;
    for(int i=0;i<n;i++)
    {
        if(judge_type[i] == 1)
        {
            sum1 += score[i];
            num1++;
        }
        else if(judge_type[i] == 2)
            {
                sum2 += score[i];
                num2++;
            }
    }
    int av1,av2,av;
    av1 = sum1/num1;
    av2 = sum2/num2;
    if(num2 == 0)
    {
        av = av1;
    }
    else
    {
        av = (int)floor(av1*0.6+av2*0.4);
    }
    return av;
}

int main()
{
    int score[MAX];
    int judge_type[MAX];
    int n;
    cout<<"n:"<<endl;
    cin>>n;
    cout<<"score:"<<endl;
    for(int i=0;i<n;i++)
    {
        cin>>score[i];
    }
    cout<<"type:"<<endl;
    for(int i=0;i<n;i++)
    {
        cin>>judge_type[i];
    }

    cout<<"final:"<<cal_score(score,judge_type,n);

    return 0;
}

 

posted on 2015-08-15 13:42  夏大兔  阅读(147)  评论(0编辑  收藏  举报

导航