用c语言输入一个用24小时制表示的时间 (h:m),把它转换为用12 小时制表示的时间并输出。 例如:输入9:05 输出 9:05AM 输入 12:10 输出 12:10PM 输入14:30 输出 2:30PM
时间: 2024-09-15 20:14:43 浏览: 164
在 C 语言中,你可以通过以下步骤来实现这个功能:
1. 首先,我们需要获取用户的输入,包括小时数(hour)和分钟数(minute)。可以使用 `scanf` 函数来读取用户输入。
```c
int hour, minute;
scanf("%d:%d", &hour, &minute);
```
2. 然后检查小时数是否超过 12,因为12小时制中12点之后的数字不需要转换。如果超过12,则减去12。
```c
if (hour > 12) {
hour = hour - 12;
}
```
3. 接下来,根据输入的小时数判断是 AM 还是 PM。如果小时数小于等于12,直接添加 "AM";如果大于12,则添加 "PM"。
```c
char timeOfDay[5];
if (hour == 0) {
hour = 12; // 因为0通常表示午夜,在12小时制下表示中午12点
} else if (hour < 12) {
strcpy(timeOfDay, "AM");
} else {
strcpy(timeOfDay, "PM");
}
```
4. 最后,将结果连接成字符串并输出。
```c
printf("%02d:%02d %s\n", hour, minute, timeOfDay); // "%02d" 是保证两位数的格式,如1变为01,12保持不变
```
完整代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
int hour, minute;
scanf("%d:%d", &hour, &minute);
if (hour > 12) {
hour = hour - 12;
}
char timeOfDay[5];
if (hour == 0) {
hour = 12; // 对于12小时制中的午夜,表示为中午12点
} else if (hour < 12) {
strcpy(timeOfDay, "AM");
} else {
strcpy(timeOfDay, "PM");
}
printf("%02d:%02d %s\n", hour, minute, timeOfDay);
return 0;
}
```
阅读全文