修改后爆1e9了

B2095 白细胞计数

Apolit33 @ 2023-11-05 12:15:56

#include<iostream>
using namespace std;
double N,big=0,small=0x3f3f3f3f,sum=0,num=0;
double a[114514];
int main()
{
    cin >> N;
    for(int i=1;i<=N;i++){
    cin >> a[i];
    if(a[i]>big)
    a[i] = big;
    if(a[i]<small)
    a[i] = small;
    }
    for(int i=1;i<=N;i++)
    {
    num += a[i];
    sum += a[i];
    }
    sum = sum-big-small;
    num = num/N;
    sum = sum / (N-2);
    cout << sum << num-sum;
}

by 2021zjhs005 @ 2023-11-05 12:22:52

@Apolit33

输出两位小数


by 2021zjhs005 @ 2023-11-05 12:24:47

@Apolit33

题目中的最小误差是指:

最小的标本与平均值的绝对值

最大的标本与平均值的绝对值

两个的最大值:

printf("%.2lf ",sum);
printf("%.2lf",max(fabs(big-sum),fabs(small-sum)));

by 2021zjhs005 @ 2023-11-05 12:26:29

@Apolit33

对不起,我弄错了。

有效标本的最大值和有效标本的最小值平均值的绝对值的最大值

不是所有标本的。


by 2021zjhs005 @ 2023-11-05 12:29:31

@Apolit33

所以给你的代码有一半是错误的。(感到抱歉)


|