我正在编写一个程序,将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;
}