* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者:
* 完成日期: 2011 年 11 月 18 日
* 版 本号:
* 对任务及求解方法的描述部分
* 输入描述:选手的原始成绩
* 问题描述:各评委打出的成绩介于0-10之间,计分规则为去掉一个最高分和一个最低分后取平均。其他要求:输出错误要能马上重新输入;评委人数在程序中的修改要尽可能方便;计算完一位选手的成绩后可以连续地计算下一位选手的成绩。
* 程序输出:各位选手的最高分、最低分及最终成绩
* 问题分析:……
* 算法设计:……
* 程序头部的注释结束
#include <iostream>
using namespace std;
double max(double x,double y)
{
return (x>y?x:y);
}
double min(double x,double y)
{
return (x<y?x:y);
}
int main ()
{
double i,result,n,a=-1,b=11,r,s=0;
char ch;
do
{
cout<<"请输入评委人数 : ";
cin>>n;
cout<<"请输入选手的成绩(0-10)"<<endl;
i=1;
while (i<=n)
{
cout<<"第"<<i<<"位评委给分:";
cin>>result;
while (result<0||result>10)
{
cout<<"第"<<i<<"位评委给分:";
cin>>result;
}
a=max(a,result);
b=min(b,result);
s=s+result;
i++;
r=(s-a-b)/(n-2);
}
cout<<"减去一个最高分:"<<a;
cout<<"减去一个最低分:"<<b<<endl;
cout<<"当前选手最后得分:"<<r<<endl;
cout<<"*************************SUCCESS**********************"<<endl;
cout<<"按 N 退出,其他键继续......Y"<<endl;
getchar();
ch=getchar();
}while(ch!='n'&&ch!='N');
return 0;
}
运行结果: