#include <stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
struct r
{
char s[100];
string name;
string start;
double time;
}buf[10000];
bool cmp(r a,r b)
{
if(a.time!=b.time)
return a.time<b.time;
return a.start<b.start;
}
int main()
{
int num=0;
char start1[15],start2[15],name[15];
while(gets(buf[num].s)&&strlen(buf[num].s)!=0){
sscanf(buf[num].s,"%s%s%s%lf",name,start1,start2,&buf[num].time);
//r[size].name=name;//名字反正也用不到,不赋值也行
buf[num++].start=string (start1)+string(start2);
}
sort(buf,buf+num,cmp);
for(int i=0;i<num;i++)
printf("%s\n",buf[i].s);
return 0;
}
这道题主要是sscanf的用法,反正我还没太明白,以后再看看。sscanf用法
网友评论