菜鸡刷PAT
7-2然后是几点
#include<stdio.h>
int main(){
int t=0,d=0,h,m;
scanf("%d %d",&t,&d);
h=t/100;
m=t%100;
m=d+m+h*60;//全部转化为分钟
h=m/60;
m=m%60;
if(h==0)
printf("0%d",h*100+m);//保证如果小时为0时有三位
else
printf("%d",h*100+m);
return 0;
}
思路
分成小时h和分钟m两部分,统一转化为分钟加上流逝的时间(由题目保证起始时间和终止时间在同一天内,可以保证最后总分钟数一定大于等于0),再将总分钟数转化为小时和分钟。
重点
第二个测试点,当小时数为0时,需要先输出一个0在加上后面的分钟数。
第三个测试点,分钟小于0,输出不满4位且小时是0。这个问题很容易被忽略。当输入为110 -20 可能出现的问题,即刚开始考虑将小时和分钟分开计算,最后加在一起,则会导致出现负分钟情况导致错误不通过。