69,373
社区成员
发帖
与我相关
我的任务
分享
int cal_score(const int score[], const int judge_type[], int n)
{
int expertN=0, expertS=0;
int otherN=0, otherS=0;
int i;
for(i=0; i<n; i++)
{
if(1==judge_type[i])
{
expertN++;
expertS += score[i];
continue;
}
else if(2==judge_type[i])
{
otherN++;
otherS += score[i];
continue;
}
}
if(0==otherN)
{
return expertS/expertN;
}
else
{
return expertS/expertN*0.6 + otherS/otherN*0.4;
}
}
int cal_score(int score[], int judge_type[], int n)
{
double sum1 = 0; //专家总分
double sum2 = 0; //大众总分
int i = 0, num1 = 0, num2 = 0;
for(; i<n; i++)
{
switch(judge_type[i])
{
case 1:
sum1 += score[i];
num1++; //专家个数
break;
case 2:
sum2 += score[i];
num2++; //大众个数
break;
default:
break;
}
}
return num2?(int)(sum1/num1*0.6+sum2/num2*0.4):(int)(sum1/num1);
}
int cal_score(int score[], int judge_type[], int n)
{
double sum1 = 0; //专家总分
double sum2 = 0; //大众总分
int i = 0, num1 = 0, num2 = 0;
for(; i<n; i++)
{
switch(judge_type[i])
{
case 1:
sum1 += score[i];
num1++; //专家个数
break;
case 2:
sum2 += score[i];
num2++; //大众个数
break;
default:
break;
}
}
return num2?(int)(sum1/num1*0.6+sum2/num2*0.4):(int)(sum1/num1);
}
typedef enum
{
JUDGE_EXPERT = 1,
JUDGE_PUBLIC = 2
} judge_t;
#define JUDGE_EXPERT_FACTOR (0.6)
#define JUDGE_PUBLIC_FACTOR (0.4)
int calculate_score(int judge_score[], judge_t judge_type[], int judge_num)
{
int score = 0;
int judge_expert_avg_score = 0, judge_public_avg_score = 0;
int judge_expert_num = 0, judge_public_num = 0;
for (int i = 0; i < judge_num, ++i)
{
if (judge_type[i] == JUDGE_EXPERT)
{
judge_expert_avg_score += judge_score[i];
++judge_expert_avg_score;
}
else if (judge_type[i] == JUDGE_PUBLIC)
{
judge_public_avg_score += judge_score[i];
++judge_public_avg_score;
}
}
if (judge_expert_num != 0)
score += judge_expert_avg_score/judge_expert_num * JUDGE_EXPERT_FACTOR;
if (judge_public_num != 0)
score += judge_public_avg_score/judge_public_num * JUDGE_PUBLIC_FACTOR;
return score;
}
#cal_score.py
#cal_score.py
int cal_score(int score[], int judge_type[], int n)
{
int specialNum=0;
int normalNum=0;
int specialScore=0;
int normalScore=0;
for(int i=0;i<n;i++)
{
if(judge_type[i]==1)
{
specialScore+=score[i];
specialNum++;
}
else if(judge_type[i]==2)
{
normalScore+=score[i];
normalNum++;
}
}
if(specialNum!=0&&normalNum!=0)
return int(specialScore/specialNum*0.6+normalScore/normalNum*0.4);
else if(specialNum!=0&&normalNum==0)
return (int)specialScore;
return -1;
}