只得了30分,求助

B2095 白细胞计数

xianghaoyu666 @ 2024-05-07 21:05:38

只过了3个

#include<iostream>
#include<iomanip>
using namespace std;
double a[301]; 
int main(){
    double b,c,max1=0,max2=0,min=100000,sum=0;
    cin>>b;
    for(int i=1;i<=b;i++){
        cin>>a[i];
        sum+=a[i];
        if(a[i]>max1){
            max1=a[i];
        }
        if(a[i]<min){
            min=a[i];
        }
    }
    c=(sum-max1-min)/(b-2);
    cout<<fixed<<setprecision(2)<<c<<' ';   
    for(int i=1;i<=b;i++){
        if(a[i]>max2 && a[i]!=max1 && a[i]!=min){
            max2=a[i];
        }
    }
    cout<<fixed<<setprecision(2)<<max2-(sum-max1-min)/(b-2)<<endl;
    return 0;
}

by Fur_Zes @ 2024-05-07 21:13:01

@xianghaoyu666 第一,误差值求出来的是绝对值,你的第二个for里只求了除掉极值后的最大值,但是有可能出现 |2-5|=3 > |6-5|=1 这样的情况,你可以再求一遍除掉极值后的最小值


by Fur_Zes @ 2024-05-07 21:13:57

@xianghaoyu666 第二,结果只需要输出误差值最大的那个,你的公式是有问题的,自己再重新思考一下


by Fur_Zes @ 2024-05-07 21:14:45

@xianghaoyu666 这些回答都是针对你的第二个输出


by xianghaoyu666 @ 2024-05-08 20:55:17

@As2O3 谢谢大佬,已经过了


|