1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 然后是几点:根据起始时间和流逝的时间计算出终止时间(起始时间和终止时间不一定在同

然后是几点:根据起始时间和流逝的时间计算出终止时间(起始时间和终止时间不一定在同

时间:2018-07-16 08:12:15

相关推荐

然后是几点:根据起始时间和流逝的时间计算出终止时间(起始时间和终止时间不一定在同

今日PTA题目:

有时候人们用四位数字表示一个时间,比如1106表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为530;0 点 30 分表示为030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:

输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为530;0 点 30 分表示为030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:

输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零,起始时间和终止时间不一定在同一天内。

输入样例:

1120 110

输出样例:

1310

基本思路:

1、所有数据统一化为以分钟为单位

2、输入的第一项:起始时间。定义为变量(basicdate1),将其赋给变量(nowtime),之后将起始时间化为以分钟为单位,用变量(time1)储存

3、输入的第二项:流逝的时间。分正负,将其定义为一个变量(basicdate2),判断正负后取模,变量为(increment)

4、判断条件流程如下

5、将流逝后的时间赋给变量(finaltime),得出finalhour和finalminute分别作为两个输出值,因为题目要求小时可以一位,但分钟需保留两位,所以printf中,分钟(finalminute)的%d改为%02d

PTA系统成绩如下:

源代码如下:

#include <stdio.h>int main(){int basicdate1,basicdate2;int nowtime;int increment;int hour,minute;int time1;int finaltime;int finalhour,finalminute;scanf("%d %d",&basicdate1,&basicdate2);nowtime=basicdate1;if(basicdate2<0){increment=-1*basicdate2;}else{increment=basicdate2;}hour=nowtime/100;minute=nowtime%100;time1=hour*60+minute;if(basicdate2<0){if(time1-increment>=0){finaltime=time1-increment;}else{if(increment-time1>=1440){finaltime=1440-(increment-time1)%1440;}else{finaltime=1440-(increment-time1); }}}else{if(time1+increment<=1440){finaltime=time1+increment;}else{if(increment+time1>=2880){finaltime=time1+increment%1440-1440;}else{finaltime=increment+time1-1440;}}}finalhour=finaltime/60;finalminute=finaltime-60*finalhour;printf("%d%02d",finalhour,finalminute);return 0;}

文字版解析如下:

然后是几点:根据起始时间和流逝的时间计算出终止时间(起始时间和终止时间不一定在同一天内)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。