问题及代码
/* * 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; }