sscanf的用法:
- https://www.runoob.com/cprogramming/c-function-sscanf.html
- https://www.cnblogs.com/caijiaming/p/10349000.html
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef struct {
char s[100],n[20],t1[20],t2[20];
double time;
}computer;
int cmp(computer a,computer b){
int tmp;
if(a.time<b.time)
return 1;
else if (a.time==b.time&&strcmp(a.t1,b.t1)<0) {
return 1;
} else if (a.time==b.time&&strcmp(a.t1,b.t1)==0&&strcmp(a.t2,b.t2)<0)
return 1;
return 0;
}
int main(){
computer a[10001];
char b[100];
int i=0;
while(cin.getline(b,100)&&strlen(b)) {
strcpy(a[i].s,b);
sscanf(a[i].s, "%s %s %s %lf", a[i].n, a[i].t1, a[i].t2, &a[i].time);
i++;
}
sort(a,a+i,cmp);
for(int j=0;j<i;j++){
printf("%s\n",a[j].s);
}
return 0;
}