C语言50分求助

B2095 白细胞计数

LWY9527 @ 2022-12-28 11:19:00

#include<stdio.h>
#include<math.h>
int main()
{
    int a,m,n;
    double c=0,max1=0,max2=0,min1=100000,sum=0;
    scanf("%d",&a);
    double s[a];
    for(m=0;m<a;m++)
    {
        scanf("%lf",&s[m]);
        if(s[m]<min1)
        min1=s[m];
        if(s[m]>max1)
        max1=s[m];
        sum+=s[m];
    }
    double d=(sum-min1-max1)/(a-2);
    for(m=0;m<a;m++)
    {
        if(s[m]!=max1&&s[m]!=min1)
        {
            c=fabs(s[m]-d);
            if(c>max2)
            max2=c;
        }
    }
    printf("%.2lf %.2lf",d,max2);
    return 0;
}

by Joker_lazydoghead @ 2022-12-28 11:34:12

你说有没有一种可能是有重复的

如:

5

3.00 1.00 1.00 1.00 2.00

那不就废了吗

所以要用一个maxi和mini去存位置


by LWY9527 @ 2022-12-28 15:52:51

@lazy_doghead 但是我是试过了,算出来的数据也没问题呀


by Joker_lazydoghead @ 2022-12-28 16:39:37

你可以试一下我给的这组数据


by LWY9527 @ 2022-12-28 20:15:21

测试了呀 1.33 ,0.67 ,有问题吗


|