ZZYTCCBS @ 2022-08-07 11:27:38
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
double a[309];
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>a[i];
}
double s=-1, x=1000000002, c=0;
for (int i=1; i<=n; i++)
{
if (a[i]>s)
{
s=a[i];
}
if (x>a[i])
{
x=a[i];
}
c+=a[i];
}
double z=(c-x-s)/(n-2);
printf ("%.2f", z);
cout<<" ";
for (int i=1; i<=n; i++)
{
if (a[i]==s || a[i]==x)
{
a[i]=0;
}
}
double m=0;
for (int i=1; i<=n; i++)
{
if (a[i]!=0 && (a[i]-z)>m)
{
m=a[i]-z;
}
}
printf ("%.2f", m);
return 0;
}
by Nityacke @ 2022-08-07 11:48:10
@ZZYTCCBS 1.可能有多个最大或最小值 2.第37,39行未取绝对值 完整代码在下面
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
double a[309];
cin>>n;
for (int i=1; i<=n; i++)
{
cin>>a[i];
}
double s=-1, x=1000000002, c=0;
for (int i=1; i<=n; i++)
{
if (a[i]>s)
{
s=a[i];
}
if (x>a[i])
{
x=a[i];
}
c+=a[i];
}
double z=(c-x-s)/(n-2);
printf ("%.2f", z);
cout<<" ";
for (int i=1; i<=n; i++)
{
if(a[i]==s) a[i]=s=0;
else if(a[i]==x) a[i]=x=0;
}
double m=0;
for (int i=1; i<=n; i++)
{
if (a[i]!=0&& fabs(a[i]-z)>m)
{
m=fabs(a[i]-z);
}
}
printf ("%.2f", m);
return 0;
}