C - A problem of sorting HDU - 5427
sort 函数用法
cmp 写法
bool cmp(node a, node b){
return a.sum > b.sum ? 1 : 0;
}
sort(a, a+n, cmp) / sort(a+1, a+n+1, cmp)
#include<bits/stdc++.h>
using namespace std;
struct node {
int sum = 0;
char name[105];
};
bool cmp(node a, node b){
return a.sum > b.sum ? 1 : 0;
}
int main(){
// freopen("test.in", "r", stdin);
int T, n, len;
cin >> T;
while(T--) {
scanf("%d", &n);
node p[105];
getchar();
for(int i = 1; i <= n; i++) {
gets(p[i].name);
}
for(int i = 1; i <= n; i++) {
len = strlen(p[i].name);
for(int j = len-4; j < len; j++){
p[i].sum *= 10;
p[i].sum += p[i].name[j] - '0';
}
// cout << "*" << p[i].sum << endl;
p[i].name[len-5] = '\0';
}
sort(p+1, p+n+1, cmp);
for(int i = 1; i <= n; i++){
cout << p[i].name << endl;
}
}
return 0;
}