【问题标题】:24 hour to 12:00 time, issue with entering 12:00, [duplicate]24 小时到 12:00 时间,输入 12:00 时出现问题,[重复]
【发布时间】:2020-04-16 22:59:18
【问题描述】:

我正在编写一个程序来将 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 当我输入 0:00 时;输出是上午 12:0

我该如何解决这个问题?

【问题讨论】:

  • 1:00 和 14:05 也是不正确的吗?
  • 使用%2.2d:%2.2d 对你有用吗?

标签: c time clock


【解决方案1】:

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

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

if (hour &lt; 11) 更改为if (hour &lt; 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;
}

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多