5 solutions

  • 1
    @ 2026-6-13 20:40:33

    #include<bits/stdc++.h> using namespace std; const int N=1e6+10; double a[N]; int main() { int n; cin>>n; int maxid,minid; //最大值最小值所在的位置 double sum=0; for(int i=1;i<=n;i++) { cin>>a[i]; if(i1||a[i]>a[maxid]) { maxid=i; } if(i1||a[i]<a[minid]) { minid=i; } sum+=a[i]; } sum=sum-a[maxid]-a[minid]; //除了最大值和最小值以外的总和 double ave=sum/(n-2); //计算平均值 double res=0; for(int i=1;i<=n;i++) { if(imaxid||iminid) continue; //如果是最大值或最小值所在的位置,那么就继续 double t=abs(a[i]-ave); //计算当前误差 if(t>res) //保留最大差值 { res=t; } } cout<<fixed<<setprecision(2)<<ave<<" "<<res; return 0; }

    • 1
      @ 2026-2-9 19:17:31
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e6+10;
      double a[N];
      int main()
      {
      	int n;
      	cin>>n;
      	int maxid,minid; //最大值最小值所在的位置 
      	double sum=0;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>a[i];
      		if(i==1||a[i]>a[maxid])
      		{
      			maxid=i;
      		}
      		if(i==1||a[i]<a[minid])
      		{
      			minid=i;
      		}
      		sum+=a[i];
      	}
      	sum=sum-a[maxid]-a[minid]; //除了最大值和最小值以外的总和 
      	double ave=sum/(n-2); //计算平均值 
      	double res=0;
      	for(int i=1;i<=n;i++)
      	{
      		if(i==maxid||i==minid) continue; //如果是最大值或最小值所在的位置,那么就继续 
      		double t=abs(a[i]-ave); //计算当前误差 
      		if(t>res) //保留最大差值 
      		{
      			res=t;
      		}
      	}
      	cout<<fixed<<setprecision(2)<<ave<<" "<<res;
      	return 0;
      }
      
      • 0
        @ 2026-8-6 10:48:09
        #include<bits/stdc++.h>
        using namespace std;
        int main(){
            int n,f=0,g=0,k=0,l=0;
            cin>>n;
            double a[305];
            for(int i=1;i<=n;i++)
            {
                cin>>a[i];
            }
            double s=0;
            for(int i=1;i<=n;i++)
            {
                g++;
                if(a[i]>=s)
                {
                    s=a[i];
                    f=g;
                }
            }
            double x=1000000.0;
            for(int i=1;i<=n;i++)
            {
                k++;
                if(a[i]<=x)
                {
                    x=a[i];
                    l=k;
                }
            }
            double y=0.0;
            for(int j=1;j<=n;j++)
            {
                y+=a[j];
            }
            y-=s+x;
            printf("%.2lf ",double(y/(n-2)));
            double b=0.1;
            for(int z=1;z<=n;z++)
            {
                if(a[z]>=b && z!=f) b=a[z];
            }
            double c=10000.0;
            for(int h=1;h<=n;h++)
            {
                if(a[h]<=c && h!=l) c=a[h];
            }
            double d=abs(c-y/(n-2.0));
            double e=abs(b-y/(n-2.0));
            if(d>=e)
            {
                printf("%.2lf",d);
            }
            else
            {
                printf("%.2lf",e);
            }
            return 0;
        }
        
        • 0
          @ 2026-5-23 10:09:14

          qqqqqqqqqqqqwwwwwwwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

          • -1
            @ 2026-5-23 10:18:16
            • 1

            Information

            ID
            897
            Time
            1000ms
            Memory
            256MiB
            Difficulty
            3
            Tags
            (None)
            # Submissions
            359
            Accepted
            70
            Uploaded By