(编程题)5-2然后是几点

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;
	
} 

确实比之前的代码简洁多了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值