高大帅 @ 2021-11-23 18:29:53
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i;
double mm=0,a[1000],max=0,sum=0,min=1000,b,c;
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
}
b=1.0*(sum-max-min)/(n-2);
for(int j=1;j<=n;j++){
if(a[j]!=max&&a[j]!=min){
c=abs(a[j]-b);
}
if(c>mm)mm=c;
}
printf("%.2lf %",b);
printf("%.2lf%",c);
return 0;
}``` 输出是对的,测试点只对了一个,找不到原因,求大佬纠错
by HY_zsy_in_2024 @ 2022-05-26 20:16:36
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a[320];
int n,x=0,y=0;
double sum=0.0,average=0.0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
double max=a[1],min=a[1];
for(int i=1;i<=n;i++)
{
if(a[i]>max)
{
max=a[i];
x=i;
}
if(a[i]<min)
{
min=a[i];
y=i;
}
sum+=a[i];
}
average=(sum-max-min)/(n-2);
double max1=0;
for(int i=1;i<=n;i++)
{
if(i!=x&&i!=y)
if(fabs(a[i]-average)>max1)
max1=fabs(a[i]-average);
}
printf("%.2lf %.2lf",average,max1);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
double a[320];
int n,x=0,y=0;
double sum=0.0,average=0.0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
double max=a[1],min=a[1];
for(int i=1;i<=n;i++)
{
if(a[i]>max)
{
max=a[i];
x=i;
}
if(a[i]<min)
{
min=a[i];
y=i;
}
sum+=a[i];
}
average=(sum-max-min)/(n-2);
double max1=0;
for(int i=1;i<=n;i++)
{
if(i!=x&&i!=y)
if(fabs(a[i]-average)>max1)
max1=fabs(a[i]-average);
}
printf("%.2lf %.2lf",average,max1);
return 0;
}