5 solutions

  • 1
    @ 2026-5-23 10:09:14

    qqqqqqqqqqqqwwwwwwwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

    • 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-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; }

        • 0
          @ 2026-5-23 10:18:16
          • 0
            @ 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;
            }
            
            • 1

            Information

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