首页 > 学院 > 开发设计 > 正文

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

2019-11-14 09:53:53
字体:
来源:转载
供稿:网友

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;	} 确实比之前的代码简洁多了。
上一篇:操作重载


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表