2 条题解

  • 0
    @ 2025-7-4 9:13:42

    重载运算符

    #include <bits/stdc++.h>
    using namespace std;
    struct Stu
    {
        int a;
        string nam;
    };
    bool operator<(const Stu &a, const Stu &b)
    {
        return a.a < b.a;
    }
    int main()
    {
        int n;
        Stu a[105];
        cin >> n;
        for (int i = 1; i <= n; i++)
            cin >> a[i].a >> a[i].nam;
        Stu ans = a[1];
        for (int i = 1; i <= n; i++)
            if (ans < a[i])
                ans = a[i];
        cout << ans.nam;
        return 0;
    }
    
    • 0
      @ 2023-1-8 9:20:04

      使用两个数组

      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	int n;
      	int score[105];
      	string name[105];
      
      	cin>>n;
      	for(int i=1;i<=n;i++)
      		cin>>score[i]>>name[i];
      
      	int max_score=-1;
      	string max_name;
      	for(int i=1;i<=n;i++)
      	{
      		if(score[i]>max_score)
      		{
      			max_score=score[i];
      			max_name=name[i];	
      		}	
      	}
      	
      	cout<<max_name<<"\n";
      	
      	return 0;
      }
      

      使用结构体

      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	int n;
      	struct Student{
      		int score;
      		string name;
      	};
      	Student a[105];//a[0]~a[104] 都是 Student 
      
      	cin>>n;
      	for(int i=1;i<=n;i++)
      		cin>>a[i].score>>a[i].name; //. -> 的 
      
      	Student max_stu;
      	max_stu.score = -1;
      	for(int i=1;i<=n;i++)
      		if(a[i].score>max_stu.score)
      			max_stu = a[i];
      	
      	cout<<max_stu.name<<"\n";
      	return 0;
      }
      
      • 1

      信息

      ID
      367
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      (无)
      递交数
      118
      已通过
      82
      上传者