全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。
输入格式:
输入数据包括两行: 第一行为n,表示n个评委,n>2。 第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。
输出格式:
输出平均分,结果保留两位小数。
输入样例:
6
10 9 8 7.9 9 9.5
输出样例:
8.88
难点在于求max和min。
法一:
使用第一个元素向后比较
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
double number[n];
double score;
int i=0;
double sum=0.0;
while(i<n){ //遍历数组代入值
scanf("%lf",&score);
number[i]=score;
sum+=score;
i++;
}
double max,min; //求max和min
max=min=number[0]; //在输入的数据中确定最大、最小值的初值,一般使用第一个元素
for(i=1;i<n;i++){
if(max<number[i]) max=number[i];
if(min>number[i]) min=number[i];
}
double average=(sum-max-min)/(n-2);
printf("%.2f",average);
return 0;
}
法二:不用数组,for循环搞定
#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
double k,s=0;
double max=0,min=10;
for(i=0;i<n;i++){
scanf("%lf",&k);
s+=k;
if (k>max){
max=k;
}
if (k<min){
min=k;
}
}
printf("%.2f",(s-max-min)/(n-2));
return 0;
}