问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 3 日
* 版 本 号:v1.0
*
* 问题描述:去掉最低分与最高分的评分规则。
* 输入描述:评委给分。
* 程序输出:最高分,最低分,平均分。
*/
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
double dpoint,dmax=0.000,dmin=10.00,dsum=0.000,devesum;
int ipeople;
cout<<"请输入选手的成绩(0~10)\n";
for(ipeople=1;ipeople<=7;ipeople++)
{
cout<<"第"<<ipeople<<"位评委给分:";
cin>>dpoint;
dsum+=dpoint;
if(dpoint>dmax)
dmax=dpoint;
if(dpoint<dmin)
dmin=dpoint;
}
cout<<"减去一个最高分:"<<setiosflags(ios::fixed)<<setprecision(3)<<dmax<<","<<"减去一个最低分:"<<setiosflags(ios::fixed)<<setprecision(3)<<dmin<<"。"<<endl;
dsum=dsum-dmax-dmin;
devesum=dsum/5;
cout<<"当前选手的最后得分是:"<<devesum;
return 0;
}
运行结果
(1)拓展:改为能设置评委人数
问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 3 日
* 版 本 号:v1.0
*
* 问题描述:去掉最低分与最高分的评分规则。
* 输入描述:评委给分。
* 程序输出:最高分,最低分,平均分。
*/
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
double dpoint,dmax=0.000,dmin=10.00,dsum=0.000,devesum;
int ipeople,m;
cout<<"请输入评委人数";
cin>>m;
cout<<"请输入选手的成绩(0~10)\n";
for(ipeople=1;ipeople<=m;ipeople++)
{
cout<<"第"<<ipeople<<"位评委给分:";
cin>>dpoint;
dsum+=dpoint;
if(dpoint>dmax)
dmax=dpoint;
if(dpoint<dmin)
dmin=dpoint;
}
cout<<"减去一个最高分:"<<setiosflags(ios::fixed)<<setprecision(3)<<dmax<<","<<"减去一个最低分:"<<setiosflags(ios::fixed)<<setprecision(3)<<dmin<<"。"<<endl;
dsum=dsum-dmax-dmin;
devesum=dsum/(m-2);
cout<<"当前选手的最后得分是:"<<devesum;
return 0;
}
运行结果:
(2)拓展:输入错误时能够重新输入
问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 11 月 3 日
* 版 本 号:v1.0
*
* 问题描述:去掉最低分与最高分的评分规则。
* 输入描述:评委给分。
* 程序输出:最高分,最低分,平均分。
*/
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
double dpoint,dmax=0.000,dmin=10.00,dsum=0.000,devesum;
int ipeople,m;
cout<<"请输入评委人数";
cin>>m;
cout<<"请输入选手的成绩(0~10)\n";
for(ipeople=1; ipeople<=m; ipeople++)
{
cout<<"第"<<ipeople<<"位评委给分:";
cin>>dpoint;
if(dpoint>=0&&dpoint<=10)
{
dsum+=dpoint;
if(dpoint>dmax)
dmax=dpoint;
if(dpoint<dmin)
dmin=dpoint;
}
else ipeople-=1;
continue;
}
cout<<"减去一个最高分:"<<setiosflags(ios::fixed)<<setprecision(3)<<dmax<<","<<"减去一个最低分:"<<setiosflags(ios::fixed)<<setprecision(3)<<dmin<<"。"<<endl;
dsum=dsum-dmax-dmin;
devesum=dsum/(m-2);
cout<<"当前选手的最后得分是:"<<devesum;
return 0;
}
运行结果