求助

B2095 白细胞计数

高大帅 @ 2021-11-23 18:29:53

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,i;
double mm=0,a[1000],max=0,sum=0,min=1000,b,c;
cin>>n;
for(i=1;i<=n;i++){
    cin>>a[i];
    sum+=a[i];
    if(a[i]>max)max=a[i];        
    if(a[i]<min)min=a[i]; 
} 
b=1.0*(sum-max-min)/(n-2);
for(int j=1;j<=n;j++){
    if(a[j]!=max&&a[j]!=min){
        c=abs(a[j]-b);
    }
    if(c>mm)mm=c;
}
printf("%.2lf %",b);
printf("%.2lf%",c);
return 0;

}``` 输出是对的,测试点只对了一个,找不到原因,求大佬纠错


by HY_zsy_in_2024 @ 2022-05-26 20:16:36

#include<bits/stdc++.h>
using namespace std;
int main()
{
double a[320];
int n,x=0,y=0; 
double sum=0.0,average=0.0;
cin>>n;
for(int i=1;i<=n;i++)
{
    cin>>a[i];
}
double max=a[1],min=a[1];
for(int i=1;i<=n;i++)
{
    if(a[i]>max)
    {
        max=a[i];
        x=i;
    }
    if(a[i]<min)
    {
        min=a[i];
        y=i;
    }
    sum+=a[i];
}
average=(sum-max-min)/(n-2);
double max1=0;
for(int i=1;i<=n;i++)
{
    if(i!=x&&i!=y)
        if(fabs(a[i]-average)>max1)
        max1=fabs(a[i]-average);
}
printf("%.2lf %.2lf",average,max1);
return 0;
}
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    double a[320];
    int n,x=0,y=0; 
    double sum=0.0,average=0.0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    double max=a[1],min=a[1];
    for(int i=1;i<=n;i++)
    {
        if(a[i]>max)
        {
            max=a[i];
            x=i;
        }
        if(a[i]<min)
        {
            min=a[i];
            y=i;
        }
        sum+=a[i];
    }
    average=(sum-max-min)/(n-2);
    double max1=0;
    for(int i=1;i<=n;i++)
    {
        if(i!=x&&i!=y)
            if(fabs(a[i]-average)>max1)
            max1=fabs(a[i]-average);
    }
    printf("%.2lf %.2lf",average,max1);
    return 0;
    }

|