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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

1120 110

输出样例:

1310 

解答程序:

#include
int main(void)
{
    int hour,min;
    int cnt=0,count=0;
    int a,b;
    scanf("%d %d",&hour,&min);
    a=hour%100;
    b=hour/100;
    //printf("a=%d b=%d\n",a,b);
    
    if(min>0)    {
                if(min+a<60)    {
                    a=a+min;
                }    else if(min+a>=60)    {
                        while(a+min>=60)    {
                            min=min-60;
                            count++;
                        }
                        b=b+count;
                        if(a+min>=0)    a=a+min;
                        else  { b-=1;a=a+min+60;}
                                
                }
            if(a<10&&a>=0) printf("%d0%d\n",b,a);
            else printf("%d%d\n",b,a);    
    }    else if(min<0)    {
                if(min+a>=0)    {
                    a=a+min;
                }    else if(a+min<0)    {
                            while(a+min<0)    {
                                min=min+60;
                                cnt++;
                            }
                            a=a+min;
                            b=b-cnt;    
                }
            //    printf("%d%d\n",b,a);
                if(a<10&&a>=0)    printf("%d0%d\n",b,a);        
                else printf("%d%d\n",b,a);
            }
    else if(min==0)     {
        if(a>=0&&a<10)
        printf("%d0%d\n",b,a);
        else
        printf("%d%d\n",b,a);
    }
    return 0;    
}

你可能感兴趣的:(PAT测试题,PAT,函数,编程)