又入坑了

版权声明:转载请附上链接,虽然我都不信有人转。 https://blog.csdn.net/gezhishigechuan_/article/details/89040794

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

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

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

输入格式:

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

输出格式:

输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310

 别人的代码:https://www.jianshu.com/p/955631f5e3da思路清晰,代码简洁

#include <stdio.h>

int main() {
    int start, minutes, total, ret;
    scanf("%d %d", &start, &minutes);
    total = start % 100 + start / 100 * 60 + minutes;
    ret = total / 60 * 100 + (total - total / 60 * 60);
    printf("%d", ret);
    return 0;
}

我的代码(负面教材) 

//这是我写的一坨代码,思路不清晰,代码冗杂,惭愧
//作为负面教材,深刻的认识到思维的重要性,以后写代码不能着急,得在先理清思路否则浪费时间
#include <stdio.h>

int main(void)
{
	int time_now;
	
	int minutes; 
	int hour_part;
	int minutes_part;
	
	int time_now_hour;
	int time_now_minutes;
	
	int final_time;
	int final_time_hour;
	int final_time_minutes;
	 
	scanf("%d %d", &time_now, &minutes);
	
	//把输入的数分解为小时和分钟两部分 
	time_now_hour = time_now / 100;
	time_now_minutes = time_now % 100;
	
	//流逝的分钟数换算成小时和分钟数
	hour_part = minutes / 60;
	minutes_part = minutes % 60;
	
	final_time_hour = time_now_hour + hour_part;
	final_time_minutes = time_now_minutes + minutes_part;
	
	if(final_time_minutes >= 60)
	{
		final_time_hour += final_time_minutes / 60;
		final_time_minutes %= 60;
	}
	else if(final_time_minutes < 0)
	{
		final_time_hour += final_time_minutes / 60 - 1;
		final_time_minutes = 60 + final_time_minutes % 60;
	}	
	final_time = final_time_hour * 100 + final_time_minutes;
	printf("\n%d", final_time);
}

猜你喜欢

转载自blog.csdn.net/gezhishigechuan_/article/details/89040794