//题目要求n(n>= 3)个评委打分,去掉最高分和最低分,剩余n-2个得分的平均值为选手得分
//具体的算法如下:
//一下两种算法性能的比较
//当n = 100000,第一种方法耗时0.001秒,第二种方法为18.114秒,两种方法的结果都是49999.5
//当n = 1000000,第一种方法耗时0.008秒结果都是500000,第二种方法无法知道,因为第二种方法的运行次数为1000000 * 1000000 = 10000亿次,本人的电脑配置,不知需等待多久,可能需要巨型机吧,可见算法优化很重要
//第一种方法:
#include<iostream>
#include<cmath>
#include <boost/timer.hpp>
using namespace boost;
using namespace std;
void main()
{
int total = 100000;//表示评委人员的人数
//cout << "请输入评委人数" << endl;
//cin >> total;
if (total < 3) //评委人数最低要求3位
{
cout << "评委人数不能小于3位" << endl;
return;
}
int *pnScore = NULL; //指针指向创建所有评委的打分数组
pnScore = new int[total]; //创建评委打分内存空间
// cout << "请输入" << total << "为评委打分" << endl;
int x = 0;
for (int i = 0; i < total; ++i)
{
//cout << "第" << i+1 << "位评委的打分是 score =" ;
//cin >> x;
//pnScore[i] = x;
pnScore[i] = i;
}
_int64 totalScore =0; //全部评委的总分,注意这里的totalScore的类型_int64,如果不是大的类型可能会出现溢出情况,比如当total = 100000的时候,得到的结果是错误的
int min = 0; //保存最低打分
int max = 0; //保存最高打分
min = pnScore[0];
max = pnScore[0];
totalScore = pnScore[0];
timer tm;
for (int j = 1; j < total; ++j)
{
totalScore += pnScore[j];
if (min > pnScore[j])
{
min = pnScore[j];
}
if (max < pnScore[j])
{
max = pnScore[j];
}
}
double result = 0; //选手得分
result =( totalScore - min - max ) / (double)(total - 2);
cout << "最后选手得分是:" << result << "总耗时:" << tm.elapsed() << endl;
int wait;
cin >> wait;
}
转载于:https://www.cnblogs.com/ganquanfu2008/p/3170025.html
相关知识
水仙花数(n>=3)
求极限 lim(n→∞) tan^n (π/4 + 2/n) 谢谢!
设等比数列{a n }的前n项和为S n ,若S 2n =3(a 1 +a 3
输出水仙花数。输入一个正整数(3=n=7),输出所有的n
14260 Problem N 花坛
才艺大赛评委打分攻略:掌握公平评分技巧
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。
记凸n边形的对角线的条数为f的表达式为( )A.f(n)=n+1B.f(n)=2n
旅游|河内四大户外摄影花海 Bốn địa điểm chụp ảnh ngàn hoa lớn nhất Hà Nội
光化学/光催化路径选择性构建N=N及C=N键反应研究
网址: C++要求n(n>= 3)个评委打分,去掉最高分和最低分,剩余n https://m.huajiangbk.com/newsview414491.html
上一篇: 三大评委赛后评花 花瓶才女各有所 |
下一篇: 赛后评花:谁是评委老师心中的“花 |