我是靠谱客的博主 酷酷凉面,这篇文章主要介绍PAT_甲级_1028,现在分享给大家,希望可以做个参考。

1028 List Sorting

Excel can sort records according to any column. Now you are supposed to imitate this function.

Input Specification:
Each input file contains one test case. For each case, the first line contains two integers N (≤10​5​​ ) and C, where N is the number of records and C is the column that you are supposed to sort the records with. Then N lines follow, each contains a record of a student. A student’s record consists of his or her distinct ID (a 6-digit number), name (a string with no more than 8 characters without space), and grade (an integer between 0 and 100, inclusive).

Output Specification:
For each test case, output the sorting result in N lines. That is, if C = 1 then the records must be sorted in increasing order according to ID’s; if C = 2 then the records must be sorted in non-decreasing order according to names; and if C = 3 then the records must be sorted in non-decreasing order according to grades. If there are several students who have the same name or grade, they must be sorted according to their ID’s in increasing order.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; struct info{ int id; char name[10]; int score; }stu[100000]; bool cmp_1(info a, info b) { return a.id < b.id; } bool cmp_2(info a, info b) { if (strcmp(a.name, b.name) == 0) { return a.id < b.id; } else { return strcmp(a.name, b.name) < 0; } } bool cmp_3(info a, info b) { if (a.score == b.score) { return a.id < b.id; } else { return a.score < b.score; } } int main() { int num, mode; cin >> num >> mode; for (int i = 0; i < num; i++) { scanf("%d%s%d", &stu[i].id, stu[i].name, &stu[i].score); } if (mode == 1) { sort(stu, stu + num, cmp_1); } else if (mode == 2) { sort(stu, stu + num, cmp_2); } else if (mode == 3) { sort(stu, stu + num, cmp_3); } for (int i = 0; i < num; i++) { printf("%06d %s %dn", stu[i].id, stu[i].name, stu[i].score); } return 0; }

最后

以上就是酷酷凉面最近收集整理的关于PAT_甲级_1028的全部内容,更多相关PAT_甲级_1028内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部