12:00 时间还有 24 小时,输入 12:00 的问题,
24 hour to 12:00 time, issue with entering 12:00,
我正在编写一个将 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
我该如何解决这个问题?
需要使用 %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;
}
我正在编写一个将 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
我该如何解决这个问题?
需要使用 %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;
}