刚发现,做的这几道浙大复试上机题我都是用结构体完成的
用结构体做的,或许有其他更好的方法
开始:小时不同时谁小谁最早,小时相同比较分钟,分钟相同比较秒.....
结束:小时不同时谁大谁最晚,小时相同比较分钟,分钟相同比较秒.....
#include<stdio.h>
struct start {
int h;
int m;
int s;
};
struct time {
char ch[20];
struct start b;
struct start f;
}Time[1000];
int main(void)
{
int n;
scanf("%d", &n);
while (n--) {
int num;
struct time min, max;
int minPos, maxPos;
scanf("%d", &num);
scanf("%s %d:%d:%d %d:%d:%d", Time[0].ch, &Time[0].b.h, &Time[0].b.m, &Time[0].b.s,
&Time[0].f.h, &Time[0].f.m, &Time[0].f.s);
min = max = Time[0];
for (int i = 1; i < num; i++) {
scanf("%s %d:%d:%d %d:%d:%d", Time[i].ch, &Time[i].b.h, &Time[i].b.m, &Time[i].b.s,
&Time[i].f.h, &Time[i].f.m, &Time[i].f.s);
if (Time[i].b.h < min.b.h || (Time[i].b.h == min.b.h && Time[i].b.m < min.b.m) || (
Time[i].b.h == min.b.h && Time[i].b.m == min.b.m && Time[i].b.s < min.b.s)) {
min =Time[i];
minPos = i;
}
if (Time[i].f.h > max.f.h || (Time[i].f.h == max.f.h && Time[i].f.m > max.f.m) || (
Time[i].f.h == max.f.h && Time[i].f.m == max.f.m && Time[i].f.s > max.f.s)) {
max =Time[i];
maxPos = i;
}
}
printf("%s %s\n", min.ch, max.ch);
}
return 0;
}