[PTA]7-2 然后是几点

Posted Spring-_-Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PTA]7-2 然后是几点相关的知识,希望对你有一定的参考价值。

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

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

输入格式:

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

输出格式:

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

输入样例:

1120 110

输出样例:

1310
  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
#include<math.h>
int main(void)
{
	int time;				// 当前时间
	int pass;				// 流逝的分钟数

	scanf("%d", &time);
	scanf("%d", &pass);

	int hour, minute;

	/* 将当前时间切分成小时分钟表示,前两位表示小时,后两位表示分钟 */
	hour = time / 100;
	minute = time % 100;

	if (pass >= 0)					// 流逝的分钟数不小于0
	{
		minute += pass;				// 分钟数=当前分钟数+流逝的分钟数
		hour += (minute / 60);		// 原来小时数加上流逝的小时数
		minute %= 60;				// 分钟数更新
	}
	else
	{
		minute += pass;				// 原来的分钟数加上负的流逝分钟数
		hour -= (abs(minute) / 60); // 小时数减去流逝的小时数,仍然还有余下分钟数未换算
		minute = abs(minute) % 60;	// 余下的未换算的分钟数
		hour--;						// 再新取一个小时把余下的分钟数换算掉
		minute = 60 - minute;		// 新的分钟数
	}

	printf("%d%02d\\n", hour, minute);

	return 0;
}

以上是关于[PTA]7-2 然后是几点的主要内容,如果未能解决你的问题,请参考以下文章

PTA基础编程题目集7-2 然后是几点 (15分)

PTA题目集导航

7-2然后是几点

7-2 然后是几点(15 分)

然后是几点

PAT-然后是几点