c语言:时间换算(题目来源mooc,c语言程序设计)

1
时间换算(10分)

题目内容:

UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。


有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。


提醒:要小心跨日的换算。


输入格式:

一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。


输出格式:

一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。


输入样例:

803


输出样例:

3

时间限制:500ms内存限制:32000kb
题目来源于mooc:c语言程序设计,仅供个人学习参考用。
#include 

int main()
{
	int utc , bjt;
	int hour, minute;

	scanf("%d", &bjt);
	//转换获得的bjt变为分开的小时与分钟
	hour = bjt / 100;
	minute = bjt % 100; 
	//通过utc=bjt-8换算,并注意跨日运算 
	int ih = hour - 8;
	if ( ih <0 ) {
		ih = 24 + ih;
	}
	//将 分开的小时和分钟转换回整数; 
	utc = ih*100+minute; 
	
	printf("%d\n", utc);
	
	return 0;
}



你可能感兴趣的:(各种代码)