我是靠谱客的博主 忧心洋葱,最近开发中收集的这篇文章主要介绍浙大PAT甲级-1028,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

排序题

这道题不难,不过学到了不少实用性东西:

-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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部