题目要求
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
输入格式:
输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。
提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上AM或PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。
算法思路
本题主要是在hours>12时,将hours-12再输出。
代码实现
#include <stdio.h>
void Convert_12(int, int);
int main()
{
int hours, minutes;
scanf("%d:%d", &hours, &minutes);
Convert_12(hours, minutes);
return 0;
}
void Convert_12(int hours, int minutes)
{
if(hours > 12)
printf("%d:%d PM", hours-12, minutes);
else
{
if(hours == 12)
printf("12:%d PM", minutes);
else
printf("%d:%d AM", hours, minutes);
}
}
知识点
1、在scanf的格式字符串中加入:
scanf("%d:%d", &hours, &minutes);
2、在英文的习惯中,中午12点被认为是下午
英语学习
convert 转换,转化
小结
如果你有更高效的代码或建议,请不吝赐教!
如果你觉得这篇文章对你有帮助,请为小白博主点个赞,你的点赞是对小白博主最大的鼓励!