求设计一个程序,依次输入三个病人的名字和时间,按照时间由早到晚将名字和时间一起排序,输出排序结果
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; }解决 无用评论 打赏 举报