#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"格式化输出,即输出一个两位数的整数,并在前面补零。