洛谷P1425 小鱼的游泳时间【c语言】
题目描述
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。
这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d分,请你帮小鱼计算一下,它这天一共游了多少时间呢?
小鱼游的好辛苦呀,你可不要算错了哦。
输入格式
一行内输入 4 个整数,分别表示 a, b, c, d。
输出格式
一行内输出 2 个整数 e 和 f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 f 应该小于60。
输入输出样例
输入
12 50 19 10
输出
6 20
说明/提示
对于全部测试数据,0\le a,c \le 240≤a,c≤24,0\le b,d \le 600≤b,d≤60,且结束时间一定晚于开始时间。
代码实现前奏
方法一:将小时转化成分钟,计算时间差值,再将其转回
我遇到的困难:/与%
解决:/得到小时(整数位),因为其为整型,舍去小数部分
%得到分钟(余数,是舍去小时后得到的)
代码实现
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
scanf("%d %d %d %d",&a,&b,&c,&d);
e=((c60+d)-(a60+b))/60;
f=((c60+d)-(a60+b))%60;
printf("%d %d",e,f);
}
方法二:不转换,小时与小时相减,分钟与分钟相减;需考虑特殊情况,即分钟相减可能为负,这里需要应用补码的原理
补码原理如下