这次我们认真地(?)来写一篇题解
一半经验
我们先来看一下之前那题的代码:
#includeusing namespace std; int main() { int n; double sum=0,ave; cin>>n; int a[1000]; for(int i=0;i<=n-1;i++) { cin>>a[i]; sum+=a[i]; } for(int k=1;k<=n;k++) { for(int i=0;i<=n-2;i++) if(a[i]>a[i+1]) swap(a[i],a[i+1]); } ave=(sum-a[0]-a[n-1])/(n-2); cout< 很显然,两题中要求的算分方法是一样的,都是去掉一个最高分和一个最低分然后求平均值。但是开一个数组来保存选手们的分数其实没有必要,我们可以逐个地算,然后打擂台比大小
#includeusing namespace std; int main() { double max=0,temp,sum; int n,m; cin>>n>>m; double a[m]; for(int i=1;i<=n;i++) { for(int k=0;k<=m-1;k++) { cin>>a[k]; sum+=a[k]; } sort(a,a+m); temp=(sum-a[0]-a[m-1])/(m-2); if(temp>max) max=temp; sum=0; } cout< 因为作者非常糟糕,所以若有不足请在评论区中指出。



