1026. 表演打分 (Standard IO)
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
题目描述
在一次运动会方队表演中,学校安排了十名老师进行打分。对于给定的每个参赛班级的不同打分(百分制整数),按照去掉一个最高分、去掉一个最低分,再算出平均分的方法,得到该班级的最后得分。
输入
一行10个用空格隔开的正整数,表示十名老师的打分。
输出
输出该班级的最终得分,答案保留三位小数。
样例输入
90 89 92 90 93 95 88 90 89 88
样例输出
90.125
问题分析
设置一个min,max用于存储最小值和最大值,然后遍历数组,把最大的值放到max,最小的值放到min,最终求总和减去min和max求平均数,这一步要注意问题的输出要求为浮点数,而前面的计算都是用整数,所以在这里要做一下转换。
程序:
#include <iostream>
using namespace std;
int main()
{
int a[10],min,max,total;
float avr;
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
if(a[0]>a[1])
{
min = a[1];max=a[0];
}
else
{ max = a[1];min=a[0];
}
total = a[0] + a[1];
for(int i=2;i<10;i++)
{
if(a[i]<min)
min = a[i];
if(a[i]>max)
max = a[i];
total += a[i];
}
avr = (total - min -max)/8.0;
printf("%.3f",avr);
}