# 20分求助!

B2095 白细胞计数

xujialin268 @ 2021-09-18 08:36:38



#include<cstdio>
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
 double ans1=0,ans2=0,c[305],maxn=-7,minn=9999999999;
int n,x,y;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>c[i];
        if(c[i]<minn) 
        {
            minn=c[i]; x=i;
        }
        if(c[i]>maxn) 
        {
            maxn=c[i]; y=i;
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(c[i]!=maxn&&c[i]!=minn) ans1+=c[i];
        else c[i]=-1;
    }
    ans1=ans1/(n-2);
    printf("%.2lf ",ans1);
    double maxn=-4;
    for(int i=1;i<=n;i++)
    {
        if(i!=x&&i!=y)
        c[i]=abs(c[i]-ans1);
        if(c[i]>maxn) maxn=c[i];
    }
    printf("%.2lf",maxn);
    return 0;
}```

by piggyh @ 2022-08-12 21:49:38


#include<iostream>
#include<string>
#include<cmath>
using namespace std;
 double ans1=0,ans2=0,c[305],maxn=-7,minn=9999999999;
int n,x,y;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>c[i];
        if(c[i]<minn) 
        {
            minn=c[i]; x=i;
        }
        if(c[i]>maxn) 
        {
            maxn=c[i]; y=i;
        }
        ans1+=c[i];
    }
    /*for(int i=1;i<=n;i++)
    {
        if(c[i]!=maxn&&c[i]!=minn) ans1+=c[i];
        else c[i]=-1;
    }这里直接全部加完后减掉,不然有可能会有重复,比如最大值是12,但是有两个就会报错*/
    ans1-=maxn,ans1-=minn;
    ans1=ans1/(n-2);
    printf("%.2lf ",ans1);
    double maxn=-4;//这里你在干什么,设置完压根没用 
//    for(int i=1;i<=n;i++)
//    {
//        if(i!=x&&i!=y)
//        c[i]=abs(c[i]-ans1);
//    }
    for(int i=1;i<=n;i++)
    {
        if(i!=x&&i!=y)
        maxn=max(abs(c[i]-ans1),maxn);
    }
    printf("%.2lf",maxn);
    return 0;
}```
几个小错而已

|