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
所以给你的代码有一半是错误的。(感到抱歉)