34 条题解

  • -1
    @ 2023-8-24 15:39:01

    过辣!

    AC代码,请放心食用。

    bool cmp(const int &x,const int &y)
    {
        return x>y;
    }
    int main()
    {
        long long n,sum=0;
        cin>>n;
        long long a[n];
        for (int i=0;i<n;i++)
        {
            cin>>a[i];
        }
        sort(a,a+n,cmp);//倒序
        for (int i=0;i<5;i++)
        {
            sum+=a[i];
        }
        cout<<fixed<<setprecision(1)<<1.0*sum/5;
    
    • -1
      @ 2023-8-18 23:40:31

      虽然这里没有写关于sort()降序排序的用法,你可能会想是因为这样很难弄,但其实这个很简单,和Python差不多,只要递入第三个参数就行了,在两个参数后面加多一个参数greater<type>(),就能把默认的升序调成降序(type那里填排序的类型,如int,long,float,double等)剩下的也没啥好讲,但要注意最后的答案,尽管你输出的是float类型或double类型,没有后面的“.0”就不行,你可以在最后前五名分数总数除以人数的时候,把“5”改成“5.0”,这样就可以了。完整代码如下:

      #include<bits/stdc++.h>
      using namespace std;
      int n,a[10],sum;
      int main(){
          cin>>n;
          for(int i=0;i<n;i++){
              cin>>a[i];
          }
          sort(a,a+n,greater<int>());
          for(int i=0;i<5;i++){
              sum+=a[i];
          }
          float b= sum/5.0;
          cout<<b;
          return 0;
      }
      

      (不要忘记“return 0;”,虽然他在现在不写也没啥用,但这其实挺重要,如果你不写,有些编辑器会随机返回一个数,很明显,这会造成一个不小的困扰,所以还是手动写上吧,浪费不了多少时间的。)

      • -1
        @ 2023-8-7 21:27:36

        题目提示中的#include <algotithm>应该为#include <algorithm>

        #include <iostream>
        #include <algorithm>
        #include <cstdio>
        using namespace std;
        int main()
        {
            int n,a[101],sum=0;
            cin>>n;
            for (int i=1;i<=n;i++)
            {
                cin>>a[i];
            }
            sort(a+1,a+n+1);
            for (int i=n;i>n-5;i--)
            {
                sum+=a[i];
                }
            printf("%.1f",sum*1.0/5);
            return 0;
        }
        
        • -1
          @ 2023-8-4 19:24:05

          我真的想用排序

          可是我懒👀️,所以用的是sort函数👀️

          上代码

          #include <bits/stdc++.h>//万能开头别忘了
          using namespace std;
          int s;
          int main()
          { 
              int n , a[100];
              double s = 0;
              cin >> n;
              for (int i = 0;i < n;i++) cin >> a[i];
              sort(a + 0,a + n);//sort函数完成排序(从小到大)
              for (int i = n - 1;i >= n - 5;i--) s += a[i];//因为要找最大的5个,所以要从n - 1开始循环
              s = s / 5;
              printf("%.1f",s);//记得保留一位小数
              return 0;
          }
          
          • -1
            @ 2023-7-24 17:00:20

            计数排序运用

            这题我用了计数排序,它的核心思想很简单。

            1. 一个满分一百分的考试,就定义101个数组,全都初始化为0,表示0--100,每个分数的人数。
            2. 之后输入一个数,如95,那下标为95的数组就加1,代表95分的人数加一。
            3. 优缺点:计数排序是最简单、最快的代码之一。但是,他的空间复杂度偏高。

            AC代码(附解析)

                int n,a[101]={0},x,num=0,sum=0;
                cin>>n;
                for (int i=1;i<=n;i++)
                {
                    cin>>x;
                    a[x]++;
                }//输入分数,把对应分数的数组+1。
                for (int i=100;i>=0;i--)
                {
                    for (int j=a[i];j>0;j--)
                    {
                        sum+=i;//总分增加。
                        num++;//输入数的个数+1。
                        if (num==5)
                        {
                            cout<<sum/5.0;
                            return 0;        
                        }//如果已经有五个数加入“前五名总分(sum)”那么输出平均分,结束程序。
                    }
                }
            
          • -2
            @ 2024-4-12 15:47:03

            谁能比我更短? print(93.2)

          • -2
            @ 2023-11-4 18:59:11

            题目中algotithm应改为algorithm

            100分AC通过

            可以给大家做做参考但

            禁止抄袭

            image

            • -2
              @ 2022-8-22 17:38:57

              其实这里也可以用sort(),就是要加第3个参数:greater<type(数据类型)>()。 原来sort()是默认升序(从小到大),加了这个函数就会变成降序(从大到小)。 因为排的是int数组,所以<>里填int,排的是double里面就填double。 所以,上代码:

              #include <bits/stdc++.h>
              using namespace std;
              int main()
              {
                  int n, a[100]; float ans = 0;
                  cin >> n;
                  for (int i = 0; i < n; i++) cin >> a[i];
                  sort(a, a+n, greater<int>());
                  for (int i = 0; i < 5; i++) ans += a[i]/5.0;
                  cout << ans;
                  return 0;
              }
              
              • -3
                @ 2023-9-10 12:59:19

                #include <iostream> #include <algorithm> using namespace std; int main() { cout<<"93.2"; return 0; }

                • -4
                  @ 2023-8-27 10:41:44

                  全坤制作人

                  • -4
                    @ 2022-4-24 15:54:51

                    鼓励大家写题解,但注意题解格式。

                    给代码两端加上这个会舒服一些

                    ```cpp

                    你的代码

                    ```

                    </span>

                    这个点在键盘的左上角tab上面那个键,注意切换输入法

                    #include<iostream>
                    using namespace std;
                    int main()
                    {
                        int n;
                        cin>>n;//这是一个注释
                        return 0;
                    } 
                    

                    请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

                    抄袭题解一经发现直接取消成绩。

                    • -5
                      @ 2022-12-17 13:42:09

                      我也不知道!!!

                      • -5
                        @ 2022-4-28 20:46:52

                        我们看到底下的同学使用了sort排序,快速得到前5名成绩。

                        sort就是排序的一个函数,使用时需要导入头文件

                        #include<algotithm>

                        或者直接导入万能头文件也就是 <bits/stdc++.h>

                        我们可以看到sort里面写了两个参数,逗号左边的是数组第一个元素的位置,由于从0开始输入

                        因此是aa也就是a+0a+0,最后一个元素是在a+na+n这点要注意,不是a+n1a+n-1

                        如果是从i=1i=1开始输入元素,那么就是sort(a+1,a+n+1);sort(a+1,a+n+1);

                        请注意是默认从小到大排序,想要实现别的排序方法,请继续学习课程。

                        • -9
                          @ 2022-7-26 20:20:06

                        【入门】优秀成绩的平均分

                        信息

                        ID
                        221
                        时间
                        1000ms
                        内存
                        16MiB
                        难度
                        6
                        标签
                        递交数
                        4316
                        已通过
                        1251
                        上传者