2020-09-12

在这里插入图片描述

算年级排名C++实现

能够参考一下,java

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
struct Student{ 
 
  
	char name[20];
	int score;
}stu[100],add[100];
bool namecmp(Student a,Student b){ 
 
  
	return a.name>b.name;
}
bool cmp(Student a,Student b){ 
 
  
	if(a.score!=b.score) return a.score>b.score;
	else return strcmp(a.name,"Maoxiaojie");
}
int main(){ 
 
  
	int N,M;
	scanf("%d",&N);
	for(int i=1;i<=N;i++){ 
 
  
		scanf("%s",&stu[i].name);
	}
	sort(stu+1,stu+1+N,namecmp);
	scanf("%d",&M);
	for(int i=1;i<=M;i++){ 
 
  
		for(int j=1;j<=N;j++){ 
 
  
			scanf("%d %s",&add[j].score,&add[j].name);

		}
		sort(add+1,add+1+N,namecmp);
		for(int j=1;j<=N;j++){ 
 
  
			stu[j].score+=add[j].score;
			add[j].score=stu[j].score;
		}
		sort(add+1,add+1+N,cmp);
	}
	for(int j=1;j<=N;j++){ 
 
  
			if(strcmp(add[j].name,"Maoxiaojie")==0){ 
 
  
				printf("%d\n",j);
				break;
			}
	}
	return 0;
}