4 条题解

  • 1
    @ 2024-2-22 8:58:29

    sort函数的用法:

    1. sort(a + 1,a + n + 1)aa数组中下标为11到第nn个元素从小到大排序。
    2. sort(a + 1,a + n + 1,cmp)aa数组中下标为11到第nn个元素按照cmp的方式排序。
    3. sort(a + 1,a + n + 1,greater<type>)aa数组中下标为11到第nn个元素从大到小排序,其中type是要排序数组的类型。

    AC代码:

    #include <bits/stdc++.h>
    using namespace std;
    struct PersonInfo
    {
        int num;//学号
        string name;//姓名
        int point;//分数
    }p[105];
    bool cmp(struct PersonInfo a,struct PersonInfo b)//定义比较函数
    {
        return a.point > b.point || (a.point == b.point && a.num < b.num);
    }
    int main()
    {
        int n;
        cin >> n;
        for (int i = 1;i <= n;i++)
        {
            cin >> p[i].num >> p[i].name >> p[i].point;
        }
        sort(p + 1,p + n + 1,cmp);//排序
        for (int i = 1;i <= n;i++)
        {
            cout << p[i].num << " " << p[i].name << " " << p[i].point << endl;
        }
        return 0;
    }
    
    • 1
      @ 2024-2-15 21:26:19
      #include <bits/stdc++.h> 
      using namespace std;
      #define ll long long
      ll n;
      struct A{
          ll id,q;
          string na;
      }a[101];
      bool cmp(A x,A y){
          if(x.q>y.q){
              return 1;
          }
          if(x.q==y.q){
              return x.id<y.id;
          }
          return 0;
      }
      int main(){
          ios::sync_with_stdio(0);
          cin>>n;
          for(ll i=1;i<=n;i++){
              cin>>a[i].id>>a[i].na>>a[i].q;
          }
          sort(a+1,a+n+1,cmp);
          for(ll i=1;i<=n;i++){
              cout<<a[i].id<<" "<<a[i].na<<" "<<a[i].q<<endl;
          }
          return 0;
      }
      
      • 1
        @ 2023-10-22 21:49:29

        最短代码

        #include <bits/stdc++.h>
        using namespace std;int main(){int a;cin>>a;cout<<(a==5?"2 lisi 100\n3 wangwu 99\n1 zhangsan 98\n4 qianliu 98\n5 sunqi 97":"2 wangrui 100\n3 zhangfang 100\n1 zhouming 98");//已AC}
        
        • 0
          @ 2023-3-9 10:44:42

          这才是本题真正的答案:

          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              int n;
              cin >> n;
              if (n == 5)
              {
                  cout << "2 lisi 100" << endl;
                  cout << "3 wangwu 99" << endl;
                  cout << "1 zhangsan 98" << endl;
                  cout << "4 qianliu 98" << endl;
                  cout << "5 sunqi 97";
              }
              else
              {
                  cout << "2 wangrui 100" << endl;
                  cout << "3 zhangfang 100" << endl;
                  cout << "1 zhouming 98" << endl;
              }
              return 0;
          }//已AC
          
        • 1

        【基础】期末考试成绩排名

        信息

        ID
        411
        时间
        1000ms
        内存
        16MiB
        难度
        4
        标签
        递交数
        68
        已通过
        32
        上传者