7-7 12-24小时制 (C语言)

7-7 12-24小时制 (15 分)编写一个程序,要求用户输入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。
输入样例:
21:11

输出样例:
9:11 PM


#include<stdio.h>
int main()
{
 int h,m;
 scanf("%d:%d",&h,&m);
 if(h<12)
  printf("%d:%d AM",h,m);
 if(h==12)
  printf("%d:%d PM",h,m);
 if(h>12)
 {
  h-=12;
  printf("%d:%d PM",h,m);
 }
 return 0;
}

### 回答1: 12时,要在前面加上,如8:9表示08:09。\n\n输出格式:\n在一行输出这个时间对应的12小时制的时间,数字部格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如9:00对应的12小时制时间是9:00 AM;14:01对应的12小时制时间是2:01 PM。\n\n输入样例:\n21:11\n\n输出样例:\n9:11 PM\n" # 获取用户输入 time = input() # 将输入的时间按照冒号割成小时和钟 hour, minute = time.split(":") # 将小时和钟转换成整型 hour = int(hour) minute = int(minute) # 判断时间是上午还是下午,并且将小时转换成12小时制 if hour < 12: if hour == : hour = 12 print("{:02d}:{:02d} AM".format(hour, minute)) else: if hour > 12: hour -= 12 print("{:02d}:{:02d} PM".format(hour, minute)) ### 回答2: 这道题可以使用Python编写程序来完成。具体步骤如下: 1.接收用户输入的24小时制时间,使用input()函数获取用户输入。 2.使用split()函数离小时数和钟数,并将其转换为整数类型。 3.判断小时数是否大于12,如果大于12就减去12小时,同时将时间标记为“PM”,否则时间标记为“AM”。 4.使用print()函数输出12小时制的时间,格式为“时: AM/PM”。 下面是Python代码实现: time = input("请输入24小时制时间(格式为时:):") hour, minute = map(int, time.split(":")) if hour > 12: hour -= 12 tag = "PM" else: tag = "AM" print("12小时制时间为:{}:{} {}".format(hour, minute, tag)) 需要注意的是,如果用户输入的时间不符合规范,如输入字符或者小时/钟数小于0等,程序会报错。因此,我们可以加上异常处理机制来避免程序崩溃,如下所示: try: time = input("请输入24小时制时间(格式为时:):") hour, minute = map(int, time.split(":")) if hour > 12: hour -= 12 tag = "PM" else: tag = "AM" print("12小时制时间为:{}:{} {}".format(hour, minute, tag)) except ValueError: print("输入不规范,请重新输入。") 这段代码就可不会因为输入异常导致程序崩溃了,而是友好地提示用户重新输入。 ### 回答3: 编写这个程序需要用到条件判断、字符串处理等知识。具体实现可为以下几个步骤: 1. 获取用户输入的时间字符串 用input()函数获取用户输入,并存储为一个字符串。 2. 判断输入是否合法 先判断输入的字符串长度是否为5,且中间是否有一个':'字符。然后用split()函数将小时数和钟数隔开,并转成整数类型。 3. 转换为12小时制的时间 如果小时数小于等于12,则直接输出即可。如果小时数大于12,则需要将其减去12,同时判断是否是0的情况。钟数不需要额外处理,直接输出即可。 4. 输出转换后的时间 将转换后的时间字符串输出给用户即可。 下面是详细的代码实现: time_str = input("请输入24小时制时间(格式为hh:mm):") if len(time_str) != 5 or time_str[2] != ':': print("输入格式错误!") else: hour, minute = map(int, time_str.split(':')) if hour < 0 or hour > 23 or minute < 0 or minute > 59: print("输入格式错误!") else: if hour == 0: hour = 12 am_pm = "AM" elif hour < 12: am_pm = "AM" elif hour == 12: am_pm = "PM" else: hour -= 12 am_pm = "PM" print("转换后的时间为:{}:{:02d} {}".format(hour, minute, am_pm)) 需要注意的是,输出时需要将钟数转成2位数,不足2位时添加前导0。另外,需要将输出语句的{}和:字符进行转义,即加上一个{}或\,否则会与格式化字符串的占位符发生冲突。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值