【问题描述】
为了备战游泳比赛,小张在拼命训练以获取好的名次。某天小张对自己的游泳训练时间进行了计时(计时按24小时制),分别记录了自己当天开始训练的时间a时b分c秒和结束训练的时间d时e分f秒。请计算出小张当天总的游泳训练时间。
【输入形式】
游泳训练的开始时间和结束时间,开始与结束时间之间以空格作为间隔,时间格式均为“时:分:秒”。
【输出形式】
总的训练时间,格式为“时:分:秒”,其中分秒不足两位的左补0。
int main()
{
int a,b,c,d,e,f;
int p,q,u;
scanf("%d:%d:%d",&a,&b,&c);
scanf("%d:%d:%d",&d,&e,&f);
p=d-a;
q=e-b;
u=f-c;
printf("%d:%02d:%02d",p,q,u);
return 0;
}
错在哪里啊
哪有那么简单啊,如果e<b呢?岂不是出现负数了么?
只能说,你想得太简单了
#include <stdio.h>
int main()
{
int a, b, c, d, e, f;
int p, q, u;
int start, end, temp;
scanf("%d:%d:%d %d:%d:%d", &a, &b, &c, &d, &e, &f);
start = a*60*60 + b*60 + c;
end = d*60*60 + e*60 + f;
temp = end - start;
p = temp / 3600; // 小时差值
q = temp / 60 % 60 ; // 分钟差值
u = temp % 60; // 秒差值
printf("%d:%02d:%02d", p, q, u);
return 0;
}