概述
排序题
这道题不难,不过学到了不少实用性东西:
-sort(vec.begin(),vec.end(),comparsion);
-strcmp(const *char a,const *char b);(相当于a-b);
-结构体;
-printf("%06d%s",...,..).
#include <iostream>
#include <string.h>
#include <vector>
#include <algorithm>
#include <stdio.h>
using namespace std;
int m,n;
typedef struct Student{
int id;
char name[10];
int grade;
};
bool comparison(Student a,Student b){
if(n==1){
return a.id<b.id;
}else if(n==2){
if(strcmp(a.name,b.name)==0)
return a.id<b.id;
else
return strcmp(a.name,b.name)<0;
}else{
if(a.grade==b.grade)
return a.id<b.id;
else
return a.grade<b.grade;
}
}
int main()
{
int i;
cin>>m>>n;
vector<Student> stu(m);
for(i=0;i<m;i++)
scanf("%d%s%d",&stu[i].id,&stu[i].name,&stu[i].grade);
sort(stu.begin(),stu.end(),comparison);
for(i=0;i<m;i++)
printf("%06d %s %dn",stu[i].id,stu[i].name,stu[i].grade);
return 0;
}
最后
以上就是忧心洋葱为你收集整理的浙大PAT甲级-1028的全部内容,希望文章能够帮你解决浙大PAT甲级-1028所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复