1 条题解

  • 0
    @ 2024-1-15 14:59:05
    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct student{
    	char name[20];
    	int a1,a2,a3,id;
    }s[55];
    bool cmp(student a,student b){
    	if(a.a3==b.a3)
    		return a.id<b.id;
    	else
    		return a.a3>b.a3;
    }
    int main(){ //C++16级 进步最大的同学 
    	 int n,m;
    	 cin>>n; //输入n名同学的信息 
    	 for(int i=0;i<n;i++){
    	 	cin>>s[i].name; //输入每名同学的名字 
    	 	s[i].id=i+1; //他的id 
    	 }
    	 	
    	for(int i=0;i<n;i++)
    	 	cin>>s[i].a1; //输入第一次考试名次 
    	for(int i=0;i<n;i++){
    		cin>>s[i].a2; //输入第二次考试名次 
    		s[i].a3=s[i].a2-s[i].a1; //进步名次 
    	}
    	sort(s,s+n,cmp); //按照进步名次排序  
    	for(int i=0;i<n;i++)//输出进步最大的同学 
    		if(s[i].a3==s[0].a3) //如果某位同学的进步名次和第一名一样,也输出	
    	 		cout<<s[i].id<<" "<<s[i].name<<endl;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    1175
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    14
    已通过
    11
    上传者