ZJY1207 @ 2024-08-05 19:34:30
#include<bits/stdc++.h>
using namespace std;
int main(){
double a[10005];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
a[i]=a[i];
}
sort(a,a+n);
a[0]=0;
a[n-1]=0;
double sum=0;
for(int i=0;i<n;i++){
if(a[i]!=0){
sum+=a[i];
}
}
double p=sum/(n-2),h=fabs(a[n-2]-p);
printf("%.2lf %.2lf",p,h);
return 0;
}
by EricWan @ 2024-08-05 19:43:06
@ZJY1207 找到问题了,你计算 h
时出现了问题。
应改为:h=max(fabs(a[n-2]-p),fabs(a[1]-p))
求关。
by 违规用户名UID1198296 @ 2024-08-05 19:43:43
@ZJY1207 帮你改好了,关注我大号:
#include<bits/stdc++.h>
using namespace std;
int main(){
double a[10005];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
a[i]=a[i];
}
sort(a,a+n);
a[0]=0;
a[n-1]=0;
double sum=0;
for(int i=0;i<n;i++){
if(a[i]!=0){
sum+=a[i];
}
}
double p=sum/(n-2),h=max(fabs(a[n-2]-p),fabs(a[1]-p));
printf("%.2lf %.2lf",p,h);
return 0;
}
by SmileString @ 2024-08-05 19:49:25
就是最小值与p的差可能大于最大值与p的差
by ZJY1207 @ 2024-08-05 21:40:07
@EricWan 谢谢大佬,已关注
by ZJY1207 @ 2024-08-05 21:42:06
@违规用户名UID1198296 thankyou,已关注