24时制与12时制的换算
题目描述
编写一个程序,输入24小时时钟上的时间(使用两个整数变量,第一个表示小时,第二个表示分钟)。
你的程序需要把这个输入转换成在12小时时钟上显示的时间并显示结果。
输出结果为小时、分钟和指示符设置值(在这里指示符是AM、PM还是noon或midnight)。
提示说明:
hours表示小时,minutes表示分钟
1、minutes=0,hours=0:12 :00 (midnight)
2、minutes>0,hours=0: 12:minutes(AM)
比如:输入00:23,则输出 12:23(AM)
3、0<hours<12:1~11 时 (AM)
4、minutes=0,hours=12:12 :00(noon)
5、minutes>0,hours=12:12:minutes(PM)
比如:输入12:23,则输出 12:23(PM)
6、12<hours<24:1~11 时 (PM)
如果输入的小时不在正常24小时制范围内,
则输出“Value for hours must be in the range 0 to 23 ”,结束程序.
如果输入的分钟不在正常时间范围内,
则输出"Value for minutes must be in the range 0 to 59",结束程序。
功能需求
输入格式:
输入一行数据,包括小时和分钟。24小时制时间。
输出格式:
输出对应的12小时制时间,或者相应的错误提示信息。
输入样例1:
00:12
输出样例1:
12:12(AM)
输入样例2:
14:52
输出样例2:
02:52(PM)
输入样例3:
12:00
输出样例3:
12:00(noon)
代码内容
#include <stdio.h>
int main()
{
int a,b;
scanf("%d:%d",&a,&b);
if(a<0||a>=24)
printf("Value for hours must be in the range 0 to 23");
if(b<0||b>=60)
printf("Value for minutes must be in the range 0 to 59");
if(a==0&&b==0)
printf("12:00(midnight)");
if(a==12&&b==0)
printf("12:00(noon)");
if(b>0&&b<60)
{
if(a==0)
printf("12:%02d(AM)",b);
if(a==12)
printf("12:%02d(PM)",b);
if(a>0&&a<12)
printf("%02d:%02d(AM)",a,b);
if(a>12&&a<24)
a=a-12,printf("%02d:%d(PM)",a,b);
}
return 0;
}