PTA 7-22(排序) 模擬EXCEL排序(25 分) 25分程式碼
阿新 • • 發佈:2018-12-24
結構體排序 分別重構三種cmp函式就行了
(注:部落格作為交流使用,切勿抄襲應付作業)
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<queue> using namespace std; const int maxn = 100000 + 7; int n, c; struct node { int id, sc; char name[22]; }a[maxn]; bool cmp1(node a, node b) { return a.id < b.id; } bool cmp2(node a, node b) { if(strcmp(a.name, b.name) == 0) return a.id < b.id; return strcmp(a.name, b.name) < 0; } bool cmp3(node a, node b) { if(a.sc == b.sc) return a.id < b.id; return a.sc < b.sc; } int main() { //char s[22], t[22]; //scanf("%s %s", s, t); //printf("%d\n", strcmp(s, t)); scanf("%d %d", &n, &c); for(int i = 0; i < n; ++i) { scanf("%d %s %d", &a[i].id, a[i].name, &a[i].sc); } if(c == 1) sort(a, a+n, cmp1); if(c == 2) sort(a, a+n, cmp2); if(c == 3) sort(a, a+n, cmp3); for(int i = 0; i < n; ++i) printf("%.6d %s %d\n", a[i].id, a[i].name, a[i].sc); return 0; }