#include <stdio.h> #include <math.h> int main() { int h, m,k; int H,M; //输出 scanf("%d:%d %d", &h, &m,&k); if((0<=h&&h <=23) &&( 0<=m&&m <=59)&&(1<= k) &&(k<= pow(10,9))){ k=(k+m)+h*60; M=k%60; //需要增加的分钟数 H=((k-M)/60)%24; //需要增加的小时,计算小时,因为不考虑日期,所以先计算得到总共多少小时,再对24取余,以防出现大于24的情况 printf("%02d:%02d\n",H,M); } return 0; }
注意:
① 需要将本身的时间加上睡眠的时间,再取运算是几时几分,防止,本身时间很大,在最后相加输出是没有考虑进位和超过24小时自动恢复成零点。如果不事先相加,因为给的测试例子太少,可能会成功通过,可以自己将开始时间设置大一点试试。
② c语言中输出数字小于10时如何在前面补个零?
使用"%02d"格式化输出,即输出一个两位数的整数,并在前面补零。