求下面问题的完整代码。

【问题描述】小明同学要坐火车去旅游,他对要挑选一辆最快的列车,请编程解决小明的问题
【输入形式】第一行输入n ,表示有n趟可供选择的列车。以后n行输入火车信息。火车信息包括车次 始发时间(时 分) 到达时间(时 分)价钱
【输出形式】最快的列车的信息
【样例输入】
6
D31 9 6 15 12 226
D35 0 27 6 53 261
K55 7 45 21 31 141
D43 14 38 21 14 261
G385 17 16 22 7 400
D39 16 0 22 33 261
【样例输出】
G385 17 16 22 7 400

转成秒数计算,得到最小值

img

代码如下:


#include <stdio.h>

typedef struct _time
{
    int h, m;
}Times;
typedef struct _data
{
    char id[10];
    Times start, end;
    int m;
}Car;

int main()
{
    int i, n;
    Car c, cmin;
    int t1, t2, min,tmp;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%s %d %d %d %d %d", c.id, &c.start.h, &c.start.m, &c.end.h, &c.end.m, &c.m);
        t1 = c.start.h * 3600 + c.start.m * 60;
        t2 = c.end.h * 3600 + c.end.m * 60 ;
        tmp = t2 - t1;
        if (i == 0)
        {
            cmin = c;
            min = tmp;
        }
        else if (tmp < min)
        {
            cmin = c;
            min = tmp;
        }
    }
    printf("%s %d %d %d %d %d", cmin.id, cmin.start.h, cmin.start.m, cmin.end.h, cmin.end.m, cmin.m);
    return 0;
}

最快的车,那就是到达时间减去始发时间求最小值

img

#include <stdio.h>
typedef struct _times
{
    int hour;
    int mins;
}times;
typedef struct _train
{
    char no[20];
    times stime;
    times etime;
    int pay;
}train;



int main()
{
    train trains[100];
    int n,min,minidx;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s %d %d %d %d %d",trains[i].no,&trains[i].stime.hour,&trains[i].stime.mins,&trains[i].etime.hour,&trains[i].etime.mins,&trains[i].pay);
        int smins = trains[i].stime.hour * 60 + trains[i].stime.mins;
        int emins = trains[i].etime.hour * 60 + trains[i].etime.mins;
        if(emins < smins)
            emins += 24*60;
        if(i==0 || emins - smins < min)
        {
            min = emins - smins;
            minidx = i;
        }
    }
    printf("%s %d %d %d %d %d",trains[minidx].no,trains[minidx].stime.hour,trains[minidx].stime.mins,trains[minidx].etime.hour,trains[minidx].etime.mins,trains[minidx].pay);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632