24小时至12:00,输入12:00,

问题描述 投票:0回答:1

我正在编写一个程序,将24小时转换为12小时。0:00和12:00的输出错误。请参考代码以及样本的输入和输出。

#include <stdio.h>

int main(void)

     int hour;
     int min;

     printf("Enter a 24-hour time: ")
     scanf("%d:%d", &hour, &min);

     if (hour < 11)
          printf("Equivalent 12-hour time: %d:%d AM\n",
                     hour == 0 ? 12 : hour, min);

     else
         printf("Equivalent 12-hour time: %d:%d PM\n",
                     hour == 12 ? 12 : hour - 12, min);

     return 0;
}

当我输入12:00时;输出是12:0 PM当我输入0:00时;输出是12:0 AM

我该如何解决?

c time clock
1个回答
1
投票

需要使用%2.2d:%2.2d或等效格式。

但是,有一个逻辑错误:11:45-01:45 PM

if (hour < 11)更改为if (hour < 12)

这里是清理代码:

#include <stdio.h>

int
main(void)
{
    int hour;
    int min;

    printf("Enter a 24-hour time: ");
    scanf("%d:%d", &hour, &min);

    if (hour < 12)
        printf("Equivalent 12-hour time: %2.2d:%2.2d AM\n",
            hour == 0 ? 12 : hour, min);

    else
        printf("Equivalent 12-hour time: %2.2d:%2.2d PM\n",
            hour == 12 ? 12 : hour - 12, min);

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.