chen__pengyu @ 2024-09-21 16:58:56
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
double a[1000],s1=0,s2=0,mx=-1e9,mi=1e9;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
s1+=a[i];
}
sort(a+1,a+1+n);
for(int i=2;i<n;i++){
s2+=a[i];
mx=max(a[i],mx);
mi=min(a[i],mx);
}
double one=(double)s1/n;
double two=(double)s2/(n-2);
printf("%.2lf ",two);
printf("%.2lf",max(mx-two,two-mi));
return 0;
}
by chen__pengyu @ 2024-09-21 16:59:51
求纠错qvq
by yuhanlinluogu @ 2024-09-21 17:37:47
@chen__pengyu 对你的代码进行了小幅调整:
#include<iostream>
#include<algorithm>
#include<math.h>
//头文件都没什么
using namespace std;
int main(){
int n;
double a[1000],arg=0,ans=0;
//源代码中无用变量很多,故删去冗余
cin>>n;
for(int i=0;i<n;++i)cin>>a[i];
sort(a,a+n);
for(int i=1;i<n-1;++i)
arg+=a[i]/(n-2);
//这一步可能写的不好,可以加完之后再外面一起除以(n-2)
for(int i=1;i<n-1;++i)
ans=max(ans,fabs(arg-a[i]));
printf("%.2lf %.2lf",arg,ans);
return 0;
}
答题思路还是一样的。 楼主代码水平不错啊!尤其是那个sort的应用,让我很有几分震惊
by chen__pengyu @ 2024-09-22 09:40:20
@yuhanlinluogu 谢谢,已关