您的位置:首页 > 其它

1006. Sign In and Sign Out (25)

2014-10-28 13:35 204 查看

1006. Sign In and Sign Out (25)

1006. Sign In and Sign Out (25)

题目易懂。用了个 结构体数组 的快排解决,虽然通过了,但感觉麻烦了。

# include <stdio.h>
# include <stdlib.h>

typedef struct stu
{
char name[20];
char in[10];
char out[10];
long intime;
long outtime;
}STU;
int cmp1(const void *a,const void *b)
{
return (*(STU *)a).intime > (*(STU *)b).intime ?1:-1;
}
int cmp2(const void *a,const void *b)
{
return (*(STU *)a).outtime < (*(STU *)b).outtime ?1:-1;
}

int main()
{
int M, i;
STU r[50];

scanf("%d",&M);
for(i = 0; i < M; i ++)
{
scanf("%s%s%s",r[i].name,r[i].in,r[i].out);
r[i].intime = (r[i].in[0]-'0')*100000 + (r[i].in[1]-'0')*10000 + (r[i].in[3]-'0')*1000
+ (r[i].in[4]-'0')*100 + (r[i].in[6]-'0')*10 +(r[i].in[7]-'0');
r[i].outtime = (r[i].out[0]-'0')*100000 + (r[i].out[1]-'0')*10000 + (r[i].out[3]-'0')*1000
+ (r[i].out[4]-'0')*100 + (r[i].out[6]-'0')*10 +(r[i].out[7]-'0');
}

qsort(r,M,sizeof(STU),cmp1);
printf("%s ",r[0].name);

qsort(r,M,sizeof(STU),cmp2);
printf("%s",r[0].name);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: