PTA 7-22 模拟EXCEL排序

来源:互联网 发布:成都收银软件系统 编辑:程序博客网 时间:2024/06/05 18:48

Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5 + 10;struct Data {    int id, score;    char name[10];}data[maxn];bool cmp1(const Data& d1, const Data& d2) {    return d1.id < d2.id;}bool cmp2(const Data& d1, const Data& d2) {    int x = strcmp(d1.name, d2.name);    if (x != 0) return x < 0 ? true : false;    return d1.id < d2.id;}bool cmp3(const Data& d1, const Data& d2) {    if (d1.score != d2.score) return d1.score < d2.score;    return d1.id < d2.id;}int main() {    int n, c; scanf("%d %d", &n, &c);    for (int i = 0; i < n; i++) scanf("%d %s %d", &data[i].id, data[i].name, &data[i].score);    if (c == 1) sort(data, data + n, cmp1);    if (c == 2) sort(data, data + n, cmp2);    if (c == 3) sort(data, data + n, cmp3);    for (int i = 0; i < n; i++) {        printf("%06d %s %d\n", data[i].id, data[i].name, data[i].score);    }    return 0;}


原创粉丝点击