wushiyan @ 2024-01-06 15:15:49
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
double sus[110];
double Max=INT_MIN,Min=INT_MAX,MI=0,MA=0,num;
for(int i=0;i<n;i++)
{
cin>>sus[i];
if(Max<sus[i]) Max=sus[i],MA=i;
else if(Min>sus[i]) Min=sus[i],MI=i;
num+=sus[i];
}
double sum=(num-Max-Min)*1.0/(n-2);
printf("%.2f",sum);
cout<<' ';
double MAX=INT_MIN;
for(int i=0;i<n;i++)
{
if((i==MI || i==MA)) continue;
else
{
MAX=max(MAX,sus[i]);
}
}
printf("%.2f",abs(sum-MAX));
return 0;
}
代码↑↓记录
记录QWQ
求救
by 2021zjhs005 @ 2024-01-06 15:17:13
@wushiyan
RE 是因为你数组太小了,
WA 的话我仔细看看。
by 2021zjhs005 @ 2024-01-06 15:25:38
@wushiyan
除了最大值和最小值,不一定是剩余的最大值和平均值最接近。
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
double sus[310];
double Max=INT_MIN,Min=INT_MAX,MI=0,MA=0,num;
for(int i=0;i<n;i++)
{
cin>>sus[i];
if(Max<sus[i]) Max=sus[i],MA=i;
else if(Min>sus[i]) Min=sus[i],MI=i;
num+=sus[i];
}
double sum=(num-Max-Min)*1.0/(n-2);
printf("%.2f",sum);
cout<<' ';
double MAX=INT_MIN;
for(int i=0;i<n;i++)
{
if((i==MI || i==MA)) continue;
else
{
MAX=max(MAX,abs(sus[i]-sum));
}
}
printf("%.2f",MAX);
return 0;
}
by wushiyan @ 2024-01-06 15:27:13
@2021zjhs005 谢谢%%%