5-2 然后是几点
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。
输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。
输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。
1120 110输出样例:
1310这是我一开始做的稍微啰嗦的代码
#include <stdio.h> int main() { int past,fly; int hour1,minute1; int hour2,minute2; int minute3,hour3; scanf("%d %d",&past,&fly); hour1=fly/60; /*将流逝的时间变成xx小时xx分钟的形式*/ minute1=fly%60; hour2=past/100; minute2=past%100; minute3=minute1+minute2; hour3=hour1+hour2; if(minute1+minute2>=60){ /*若相加的分钟数大于等于60,小时数增加一 */ minute3=minute3-60; hour3=hour3+1; } if (minute1+minute2<0){ /*若增加的分钟数为负数,小时数借一位,小时数减一*/ minute3=minute3+60; hour3=hour3-1; } if(minute3==0) /*考虑分钟数为0的特殊情况*/ PRintf("%d00",hour3); else printf("%d%d",hour3,minute3); return 0;} 后来我发现其实应该把小时换算成分钟,这样更简洁(~~~~(>_<)~~~~,新手一枚)改进了一下#include<stdio.h>int main(){ int past,fly; int x; scanf("%d %d", &past , &fly); x=(past/100)*60+past%100; printf("%d",(x+fly)/60*100+(x+fly)%60); return 0; } 确实比之前的代码简洁多了。
新闻热点
疑难解答