/***************************************************************/ * Copyright (c) 2009 eryar All rights reserved. * * * * File : Main.CPP * * Date : 2009-03-11 21:12 * * Author : eryar@163.com * * * * Description: * * 在歌星大奖赛中, 有10个评委为参赛选手打分, 分数为1到100分. * * 选手最后得分为: 去掉一个最高分和一个最低分, 其余八个分数的平 * * 均数. * * * /***************************************************************/ #include <iostream> using namespace std; int main(int argc, char* argv[]) { int iScore = 0; int iMaxScore= 0; int iMinScore= 100; int iAverage = 0; int iReferee[10]; const int iNumber = 10; for (int i=0; i<iNumber; ++i) { cout<<"Referee "<<i+1<<" score : "; cin>>iScore; iReferee[i] = iScore; iAverage += iScore; if (iScore > iMaxScore) iMaxScore = iScore; if (iScore < iMinScore) iMinScore = iScore; } cout<<"Canceled the max score : "<<iMaxScore<<endl; cout<<"Canceled the min score : "<<iMinScore<<endl; iAverage = (iAverage - iMaxScore - iMinScore)/(iNumber - 2); cout<<" Average score : "<<iAverage<<endl; //------------------------------------------------- // 在十个评委中找出最公平即评分最接近平均分和最不 // 公平即与平均分的差距最大的评委. cout<<"---------------Referee---------------"<<endl; //int iFair = 0; int iUnfair = 0; int iGap = 2; //定义接近程度 //------------------------------------------------- // 最不公平的 if( (iMaxScore - iAverage) > (iMinScore - iAverage)) iUnfair = iMaxScore; else iUnfair = iMaxScore; cout<<"The most unfair referee : "<<endl; for (i=0; i<iNumber; ++i) { if (iReferee[i] == iUnfair) cout<<"Referee "<<i+1<<" : "<<iReferee[i]<<endl; } //------------------------------------------------- // 最公平的 cout<<"The most fair referee : "<<endl; int iTopLine = iAverage + iGap; int iLowLine = iAverage - iGap; for (i=0; i<iNumber; ++i) { if ((iReferee[i] > iLowLine) && (iReferee[i] < iTopLine)) cout<<"Referee "<<i+1<<" : "<<iReferee[i]<<endl; } cout<<"---------------Referee---------------"<<endl; return 0; } /*--------TEST----------- Referee 1 score : 90 Referee 2 score : 91 Referee 3 score : 93 Referee 4 score : 94 Referee 5 score : 90 Referee 6 score : 99 Referee 7 score : 97 Referee 8 score : 92 Referee 9 score : 91 Referee 10 score : 95 Canceled the max score : 99 Canceled the min score : 90 Average score : 92 ---------------Referee--------------- The most unfair referee : Referee 6 : 99 The most fair referee : Referee 2 : 91 Referee 3 : 93 Referee 8 : 92 Referee 9 : 91 ---------------Referee--------------- --------TEST-----------*/