呼唤大佬,求改!!!

B2095 白细胞计数

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,已关注


|