5 条题解

  • 2
    @ 2023-9-24 14:49:00
    #include <bits/stdc++.h>
    using namespace std;
    int n, a[1005], ans, maxn = -1, minn = 99999;
    int main()
    {
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i];
            maxn = max(a[i], maxn);
            minn = min(a[i], minn);
            ans += a[i];
        }
        cout << fixed << setprecision(2) << (ans - maxn - minn) * 1.0 / (n * 1.0 - 2);
        return 0;
    }
    

    简简单单

    • 1
      @ 2023-8-18 21:16:46

      排序是什么?!

      用sort函数!!!

      懒人必看🚀️

      #include <bits/stdc++.h>
      using namespace std;
      int  n , a[10];
      double sum;
      int main()
      {
          cin >> n;
          for (int i = 0; i < n; i++) cin >> a[i];
          sort(a , a + n);
          for (int i = 1; i < n - 1; i++) sum += a[i];
          printf("%.2f",sum / (n - 2));
          return 0;
      }
      
      • 1
        @ 2022-12-11 13:40:17

        这道题就硬算,丝毫不怂。定义一个二维数组 student[100][20] ,放每个同学的编号和分数。再用三个 for 循环,对二维数组的每一层进行排序,再用两个 for 循环进行除最高分和最低分的平均分,放进数组 score[20] 。再用一个 for 循环进行比较大小。

        AC代码

        #include<stdio.h>
        int main()
        {
        	int n,m;
        	double count=0;
        	int mark=0;
        	double student[100][20];
        	double score[20];
        	scanf("%d %d",&n,&m);
        	for (int i=0;i<n;i++)
        	{
        		for(int j=0;j<m;j++)
        			scanf("%lf",&student[i][j]);
        	}
        	for(int i=0;i<n;i++)//开始排序
        	{
        		for(int j=0;j<m;j++)
        		{
        			for(int k=j+1;k<m;k++)
        			{
        				if(student[i][k]<student[i][j])
        				{
        					double temp;
        					temp=student[i][k];
        					student[i][k]=student[i][j];
        					student[i][j]=temp;
        				}
        			}
        		}
        	}
        	for(int i=0;i<n;i++)//开始计算平均分
        	{
        		for(int j=1;j<m-1;j++)
        		{
        			count =count+student[i][j];
        		}
        		score[mark]=(double)(count/(m-2));
        		mark+=1;
        		count=0;
        	}
        	double max=score[0];//开始求最大值
        	for(int i;i<mark;i++)
        	{
        		if(max<score[i])
        			max=score[i];
        	}
        	printf("%.2lf\n",max);
        	return 0;
        }
        
        • @ 2023-4-14 22:27:39

          az,明明十几行代码就可以了啊

      • 0
        @ 2023-4-14 22:27:09
        #include<bits/stdc++.h>
        using namespace std;
        int main()
        {
            int n,a[11],ans=0;
            cin>>n;
            for (int i=1;i<=n;i++)
                cin>>a[i];
            sort(a+1,a+n+1);
            for (int i=2;i<n;i++)
                ans+=a[i];
            cout<<fixed<<setprecision(2)<<1.0*ans/(n-2);
            return 0;
        }
        • 0
          @ 2022-1-24 14:21:01
          
          
          特此说一下如何保留一位小数,
          setprecision是一个计算机函数,
          功能是控制输出流显示浮点数的有效数字个数,
          如果和fixed合用的话,
          可以控制小数点后面有几位。
          那么使用该函数需要导入库文件iomanip
          #include<iostream>
          #include<iomanip>
          using namespace std;
          int main()
          {
              double pi=3.1415;
              cout<<fixed<<setprecision(1)<<pi;
              return 0;
          }
          括号里写几就保留几位
          • 1

          信息

          ID
          168
          时间
          1000ms
          内存
          16MiB
          难度
          3
          标签
          递交数
          128
          已通过
          70
          上传者