您的位置:首页 > 编程语言

2011华为编程系列之评委打分

2013-01-18 16:43 309 查看
问题描述:

在评委打分的比赛中,通常采取去掉一个最高分和最低分,再求平均分的做法,主要是为了公平,公正和公开的原则,防止有人买通评委,有特别的高分出现,另外,也可以防止因为评委个人原因,对选手有“低见”给特别低的分。去掉最高分最低分能够求出较为准确的平均分。请编写程序实现上述计分过程

要求实现函数:

int score_calc(int n, int score[])
【输入】 int n,评委人数n(n>=3)
int score[],每个评委的打分(百分制)
【输出】 无
【返回】 选手最终得分(取整)
注:
取整和四舍五入不同,取整只保留数值的整数部分,小数部分丢弃。比如7.3和7.6,取整后都为7

示例

输入:int n = 5;int score[] = {75, 80, 75, 70, 80}

输出:无

返回:76

#include <iostream>

using namespace std;

int score_calc(int n,int score[])
{
int temp;
for (int i=0;i<n-1;i++)
{
for (int j=0;j<n-i-1;j++)
{
if (score[j]>score[j+1])
{
temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}

}
}

int temp1=0;
for (int k=1;k<n-1;k++)
{
temp1+=score[k];
}

temp1/=n-2;
return  temp1;

}
int main()
{

int n=5;
int score[]={75,80,75,70,80};

int c=score_calc(n,score);
cout<<c<<endl;

return 0;
}


测试成功

答题思路:

1 对输入数组进行冒泡排序,从小道大排起

2 取整数,相当于整除操作

3 输出即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐