无聊 @ 2020-11-18 20:38:33
/*
ID: dan20081
TASK: test
LANG: C++
*/
#include<bits/stdc++.h>
using namespace std;
int a[11]={0};
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
a[x]++;
}
for(int i=1;i<=n;i++){
if(a[i]!=0){
a[i]--;
break;
}
}
for(int i=n;i>=1;i--){
if(a[i]!=0){
a[i]--;
break;
}
}
double ans=0;
for(int i=1;i<=10;i++){
ans+=a[i]*i;
}
cout<<fixed<<setprecision(2)<<ans/(n-2);
}
by 无聊 @ 2020-11-18 20:39:31
顺便说一句,我的注释内内容是我的模板,并非抄袭
by w23c3c3 @ 2020-11-18 20:40:45
@无聊 数字值域可能不在1~n之间,所以从1~n,n~1循环不行
by 无聊 @ 2020-11-18 20:43:00
感谢,我试一试
by 无聊 @ 2020-11-18 20:44:06
我换了个方式 AC了
/*
ID: dan20081
TASK: test
LANG: C++
*/
#include<bits/stdc++.h>
using namespace std;
int a[11]={0};
int main(){
int n;
cin>>n;
int maxn=-1;
int m=11;
for(int i=1;i<=n;i++){
int x;
cin>>x;
maxn=max(x,maxn);
m=min(m,x);
a[x]++;
}
double ans=0;
for(int i=1;i<=10;i++){
ans+=a[i]*i;
}
ans-=maxn;
ans-=m;
cout<<fixed<<setprecision(2)<<ans/(n-2);
}