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

  • 问题描述:

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

  • 要求实现函数:

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 输出即可



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值