欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-07 10:37:58
...

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

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

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

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

输入样例:
1120 110

输出样例:
1310

我的代码

#include <stdio.h>
int main(void){
	int h, m, a, b;

	scanf("%d %d", &h, &m);
	
	a = h % 100; //取出分钟数
		b = m + a; //总分钟数
		h/=100; //取出小时数
		h += b/60; //进位到小时
		m = b%60; //剩余分钟数
		printf("%d", 100*h + m);

	return 0;
}

7-2 然后是几点 (15分)
结果不对,不知道为什么。
别人的代码:

#include<stdio.h>
int main(){
    int stime,etime;
    int smin,emin;
    int passed;
    scanf("%d%d",&stime,&passed);
    smin = stime/100*60 + stime % 100;//统计总共的分钟数
    emin = smin + passed;//再加上过去的分钟数
    etime = emin/60*100+emin%60; //整体转换成正常时间
    printf("%d\n",etime);
}

感觉这种思路比较清晰。我的相当于是分钟和小时分开考虑计算了,反正都涉及转化,不如直接整体先换成分钟再倒成小时 比较清楚。