首页 > 学院 > 开发设计 > 正文

1028. List Sorting 解析

2019-11-11 01:20:33
字体:
来源:转载
供稿:网友

数据比较大 需要换用scanf 和 PRintf

#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;struct Node{	int id;	string name;	char n[10];	int grade;};vector <Node> list;int N, Rank;bool cmp1(Node n1, Node n2) {	return n1.id < n2.id;}bool cmp2(Node n1, Node n2) {	if( n1.name != n2.name)		return n1.name < n2.name;	else 		return n1.id < n2.id;}bool cmp3(Node n1, Node n2) {	if(n1.grade != n2.grade)		return n1.grade < n2.grade;	else 		return n1.id < n2.id;}int main() {	cin >> N >> Rank;	ios_base::sync_with_stdio(false);		for (int i = 0; i < N;i++) {		Node temp;		scanf("%d %s %d", &temp.id, temp.n, &temp.grade);//		cin >> temp.id >> temp.name >> temp.grade;//		cout << temp.n << endl;		temp.name = temp.n;//		cout << temp.name << endl;		list.push_back(temp);	}	switch (Rank)	{	case 1:sort(&list[0], &list[0] + N, cmp1); break;	case 2:sort(&list[0], &list[0] + N, cmp2); break;	case 3:sort(&list[0], &list[0] + N, cmp3); break;	default:		break;	}	for (int i = 0; i < N; i++) {		printf("%06d %s %d/n", list[i].id, list[i].n, list[i].grade);	}	system("pause");	return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表