#include<stdio.h>
#include<algorithm>
#include<string.h>
#define MAX_N 100100
using namespace std;
struct Student{
int id;
char name[15];
int grade;
}stu[MAX_N];
bool cmp1(struct Student a,struct Student b){
return a.id<b.id;
}
bool cmp2(struct Student a,struct Student b){
if(strcmp(a.name,b.name)!=0) return strcmp(a.name,b.name)<0;
return a.id<b.id;
}
bool cmp3(struct Student a,struct Student b){
if(a.grade!=b.grade) return a.grade<b.grade;
else return a.id<b.id;
}
int main(){
int n;
int choice;
scanf("%d%d",&n,&choice);
for(int i=0;i<n;i++){
scanf("%d %s %d",&stu[i].id,stu[i].name,&stu[i].grade);
}
switch(choice){
case 1:sort(stu,stu+n,cmp1);break;
case 2:sort(stu,stu+n,cmp2);break;
case 3:sort(stu,stu+n,cmp3);break;
}
for(int i=0;i<n;i++){
printf("%06d %s %d\n",stu[i].id,stu[i].name,stu[i].grade);
}
}
1028. List Sorting (25) PAT甲级
最新推荐文章于 2022-09-20 19:39:16 发布
本文介绍了一个使用C语言实现的学生信息排序程序。该程序通过输入学生的ID、姓名和成绩,并允许用户选择不同的排序标准:按ID、姓名或成绩进行排序。程序展示了如何定义结构体来存储学生信息,并使用自定义比较函数实现不同排序方式。
1928

被折叠的 条评论
为什么被折叠?



