3.排序题与sort函数的应用

1.相关结构体的定义

 struct stu{
 	char name[10];	//名字 
 	char id[10];	//学号 
 	int score;	//分数 
 	int r;	//排名 
 };

2. sort中cmp函数编写
例如:要求按照分数高低排序,如果相同按照名字从小到大排序。

 bool cmp(stu a,stu b)  //a,b是两个结构体变量
 {
 	if(a.score!=b.score) return a.score>b.score;
 	else rertun strcmp(a.name,b.name)<0;  //为什么不是==-1 (不同编译器返回的值可能不同,<0一定正确) 
 }

3. 排序后个体的排名
例如:90、88、88、88、86————1、2、2、2、5

stu[0].r=1;
for(int i=0;i<n;i++)
{
	if(stu[i].score==stu[i-1].score)  stu[i].r==stu[i-1].r;
	else stu[i].r=i+1;	
}