跪求C语言习题的解法~~

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:21:31
输入2 个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。
(有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。)
例:输入 712 1411 (出发时间是7:12,到达时间是14:11)
输出 The train journey time is 6 hrs 59 mins.
本人是初学者,因此这道题中的情景是在一天中的~~ 最好能给个正确解法

我觉得吧,可以先算分钟的,要是出发时间的分钟数小于到达时间的,就向高位借1加60计算,
计算小时就是首先考虑有没被借位,要是出发的小时数小于到达的小时数就加上24计算~~

至于有的火车是行驶两三天的,你的题目没有给出日期就 不好算了~~只能按火车行驶时间在一天之内来算~

先time=time1-time2
再用公式把时间算出来 time=time/100*60+time%100

#include<stdio.h>
main()
{
int time1,time2,min1,min2,hour,min;
printf("input time1 and time2:\n");
scanf("%d%d",&time1,&time2);
min1=(time1/100)*60+time1%100;
min2=(time2/100)*60+time2%100;
hour=(min2-min1)/60;
min=(min2-min1)%60;
printf("The train journey time is %d hrs %d mins",hour,min);
}

因为刷新了缓冲区的,所以不能把两个数输在一行,输入一个数要回车才能输第二个数

#include<stdlib.h>
#include<stdio.h>
int main()
{
char starttime[4],endtime[4];
int time1,time2,hour1,hour2,min1,min2,hour,min;
scanf("%s", starttime);
time1 = atoi(starttime);
fflush(stdin);
scanf("%s", endtime);
time2 = atoi(endtime