时间的输出(12小时制) 编写程序,采用12小时制按 hh:mm:ss.ss(AM/PM) 的格式输出时间。说明:规定12点之前为上午(AM),之后为下午(PM)。例如12:00,应该为下午(PM)。 说明:hour、minute和second 分别为时数、分数和秒数,函数将采用12小时制按“hh:mm:ss.ss(AM/PM)”的格式显示时间。 8:10:5.5 08:10:05.50(AM) 18:25:3.25 06:25:03.25(PM) 输入格式: 顺序输入时间、分钟和秒,用英文:分隔 输出格式: 采用12小时制按“hh:mm:ss.ss(AM/PM)”的格式显示时间 输入样例1: 8:10:5.5 输出样例1: 08:10:05.50(AM) 输入样例2: 18:25:3.25 输出样例2: 06:25:03.25(PM) 输入样例3: 0:0:0.0 输出样例3: 00:00:00.00(AM) 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB C++ (g++) 1
时间: 2023-12-19 11:05:49 浏览: 188
下面是 C++ 代码实现:
```c++
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int hour, minute, second;
char colon1, colon2, period;
cin >> hour >> colon1 >> minute >> colon2 >> second >> period;
// 转换为24小时制的小时数
if (hour == 12) {
hour = (period == 'A') ? 0 : 12;
} else {
hour += (period == 'P') ? 12 : 0;
}
// 输出格式化后的时间
printf("%02d:%02d:%02d.%02d(%cM)\n", hour, minute, second, 0, (hour < 12) ? 'A' : 'P');
return 0;
}
```
思路解析:
1. 首先读入时间数据和 AM/PM 的标识符。
2. 将小时数转换为 24 小时制的小时数,即如果是下午,就加上 12 小时。
3. 根据题目要求,输出格式化后的时间,其中 `%02d` 表示输出两位数字,不足两位左侧补 0。注意,题目中给出的时间数据中包含毫秒,但是输出格式中只需要到秒,因此毫秒部分直接输出 0 即可。
4. 最后根据小时数是否小于 12 来输出 AM 或 PM。
时间复杂度:$O(1)$。
空间复杂度:$O(1)$。
阅读全文