考研计算机机试刷题修炼

日至排序

2019-04-30  本文已影响1人  故梦_三笙
image.png
#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用法

上一篇下一篇

猜你喜欢

热点阅读