1 条题解

  • 0
    @ 2024-4-24 20:53:22

    这就是一个很简单的结构体排序题,就是首先排一遍总成绩,如果总成绩相等就把序号小的排前面,,然后这道题就过了,我写的还是比较麻烦的,可以直接输入姓名,成绩的,不过为了直观好看,还是分开了

    #include <bits/stdc++.h>
    
    using namespace std;
    struct abc{
    	string name;
    	int all_subject,chinese,math,english;
    	int id;
    }a[11100];
    bool cmp(abc a,abc b)
    {
    	if(a.all_subject==b.all_subject){
    		return a.id<b.id;
    	} 
    	return a.all_subject>b.all_subject; 
    }
    
    int main() {
    	int t1,t2,t3;
    	int n;
    	string s; 
    	cin >> n;
    	for(int i=1;i<=n;i++){
    		cin >>s>> t1 >> t2 >> t3;
    		a[i].name = s;
    		a[i].chinese = t1;
    		a[i].math = t2;
    		a[i].english = t3;
    		a[i].all_subject=t1+t2+t3;
    		a[i].id=i;
    	} 
    	sort(a+1,a+1+n,cmp);
    	cout << a[1].name << " "<<a[1].chinese;
    	cout << " " << a[1].math << " " << a[1].english; 
    }
    
    • 1

    信息

    ID
    106
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    (无)
    递交数
    154
    已通过
    4
    上传者