Winter-698 2023-11-25 11:21 采纳率: 0%
浏览 3

c语言设计一个程序实现排序

求设计一个程序,依次输入三个病人的名字和时间,按照时间由早到晚将名字和时间一起排序,输出排序结果

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-11-25 12:18
    关注
    #include <stdio.h>
    
    struct Patient
    {
        char name[100];
        int time;
    };
    
    int gettime(int h, int m, int s)
    {
        return h * 3600 + m * 60 + s;
    }
    
    void printtime(int time)
    {
        printf("%02d:%02d:%02d", time / 3600, (time % 3600) / 60, time % 60);
    }
    
    int main()
    {
        struct Patient a[3];
        for (int i = 0; i < 3; i++)
        {
            printf("请输入第%d个患者名字: ", i + 1);
            scanf("%s", a[i].name);
            printf("请输入第%d个患者时间 h:m:s: ", i + 1);
            int h, m, s;
            scanf("%d:%d:%d", &h, &m, &s);
            a[i].time = gettime(h, m, s);
        }
        for (int i = 0; i < 2; i++)
        {
            for (int j = 0; j < 2 - i; j++)
            {
                if (a[j].time > a[j + 1].time)
                {
                    struct Patient temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
        for (int i = 0; i < 3; i++)
        {
            printf("%s\t", a[i].name);
            printf("Time: ");
            printtime(a[i].time);
            printf("\n");
        }
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月25日