c语言利用sort方法排序
输入格式:人名 年龄 成绩
任务:根据成绩、人名、年龄的顺序对项目排序
#include<stdio.h> //标准输入输出
#include<algorithm> //功能强大的标准模板库,内含排序算法sort函数
定义student结构体
typedef struct student{
char name[10];
int age;
int mark;
//运算符重载定义结构体之间的小于号
bool operator < (const student &b) const{
if(mark!=b.mark) return mark>b.mark; //成绩高的靠前
int tmp=strcmp(name,b.name);//若a<b名字,则返回<0
if(tmp!=0) return tmp<0;//字母小的靠前
else return age<b.age;//年龄小的靠前
}
}student;
按格式输入输出排序
int main(){
int n;
//先输入学生数量
while(scanf("%d",&n)!=EOF){
student buf[n];
for(int i=0;i<n;i++){
scanf("%s%d%d",buf[i].name,&buf[i].age,&buf[i].mark);
}
//按照定义的小于号,进行排序,sort函数用的是快速排序
sort(buf,buf+n);
printf("rank:\n");
for(int i=0;i<n;i++){
printf("%s %d %d\n",buf[i].name,buf[i].age,buf[i].mark);
}
printf("\n");
}
return 0;
}