xujialin268 @ 2021-09-18 08:36:38
#include<cstdio>
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
double ans1=0,ans2=0,c[305],maxn=-7,minn=9999999999;
int n,x,y;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>c[i];
if(c[i]<minn)
{
minn=c[i]; x=i;
}
if(c[i]>maxn)
{
maxn=c[i]; y=i;
}
}
for(int i=1;i<=n;i++)
{
if(c[i]!=maxn&&c[i]!=minn) ans1+=c[i];
else c[i]=-1;
}
ans1=ans1/(n-2);
printf("%.2lf ",ans1);
double maxn=-4;
for(int i=1;i<=n;i++)
{
if(i!=x&&i!=y)
c[i]=abs(c[i]-ans1);
if(c[i]>maxn) maxn=c[i];
}
printf("%.2lf",maxn);
return 0;
}```
by piggyh @ 2022-08-12 21:49:38
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
double ans1=0,ans2=0,c[305],maxn=-7,minn=9999999999;
int n,x,y;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>c[i];
if(c[i]<minn)
{
minn=c[i]; x=i;
}
if(c[i]>maxn)
{
maxn=c[i]; y=i;
}
ans1+=c[i];
}
/*for(int i=1;i<=n;i++)
{
if(c[i]!=maxn&&c[i]!=minn) ans1+=c[i];
else c[i]=-1;
}这里直接全部加完后减掉,不然有可能会有重复,比如最大值是12,但是有两个就会报错*/
ans1-=maxn,ans1-=minn;
ans1=ans1/(n-2);
printf("%.2lf ",ans1);
double maxn=-4;//这里你在干什么,设置完压根没用
// for(int i=1;i<=n;i++)
// {
// if(i!=x&&i!=y)
// c[i]=abs(c[i]-ans1);
// }
for(int i=1;i<=n;i++)
{
if(i!=x&&i!=y)
maxn=max(abs(c[i]-ans1),maxn);
}
printf("%.2lf",maxn);
return 0;
}```
几个小错而已