本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。输入格式: 输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。输出格式: 在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
时间: 2025-04-06 16:00:30 浏览: 39
<<
要计算旅途所用的时间,我们可以将出发时间和到达时间转换成以分钟为单位的时间戳,然后相减得到总耗时(以分钟计)。接着再把结果从分钟转回“hh:mm”的格式进行输出。
具体步骤如下:
1. 将输入的两个时间字符串解析为对应的小时和分钟部分;
2. 把它们转化为总的分钟数:`total_minutes = hour * 60 + minute`;
3. 计算差值并确保如果到达时间小于出发时间,则说明跨越了午夜,需额外处理这种情况;
4. 最后将结果格式化为 `hh:mm` 的形式输出;
下面是基于上述逻辑编写的 C 程序代码:
```c
#include <stdio.h>
int main() {
int start_hour, start_minute;
int end_hour, end_minute;
// 输入开始与结束时间
scanf("%d%d", &start_hour, &end_hour);
// 分离出分钟信息,并重新赋给变量名以便后续操作清晰易懂
start_minute = (start_hour % 100);
start_hour /= 100;
end_minute = (end_hour % 100);
end_hour /= 100 ;
// 转换为总共多少分钟
int total_start_time = start_hour * 60 + start_minute;
int total_end_time = end_hour * 60 + end_minute;
int duration_in_mins ;
if(total_end_time >= total_start_time){
duration_in_mins = total_end_time - total_start_time ;
}
else{
duration_in_mins = 24*60 + total_end_time - total_start_time ;
}
// 再次拆分为 hh 和 mm 部分用于最终打印
int result_hours = duration_in_mins / 60;
int result_minutes = duration_in_mins % 60;
printf("%02d:%02d\n", result_hours ,result_minutes );
return 0;
}
```
**解释**: 这段程序首先读取用户提供的两组四位数字代表的不同时刻作为起点终点。之后利用模运算提取各别字段中的有效数据即真正意义上的时跟分量,随后将其全部统一换算成为单纯的"过去了几分钟"这样的度量标准来进行比较运算得出历时长短。最后一步便是反过来依照规定的输出样式重构答案呈现出来即可满足题目需求.
阅读全文
相关推荐













