刚学c编的时间换算问题,感觉编的很笨求指教

题目内容:
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
提醒:要小心跨日的换算。

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

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

输入样例:
903

输出样例:
103
时间限制:500ms内存限制:32000kb

#include

int main()
{

int BJT;
int UTC;
printf("请输入北京时间");
scanf("%d",&BJT);
printf("您输入的的北京时间是%d\n",BJT);

if(BJT<=2359){
    if(BJT>=800){

                    int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    if(UTC>10){
                        UTC=UTC;
                        printf("对应的世界协调时为%d",UTC);
                    }else{
                        printf("对应的世界协调时为0%d",UTC);
                    }

    }else{
                int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    UTC=2400+UTC;
                    printf("对应的世界协调时为前一天的%d",UTC);
               }
}else{
    printf("您输入的的时间有误,必须小于2359"); 

}
return 0;

}

#include

int main()
{

int BJT;
int UTC;
printf("请输入北京时间");
scanf("%d",&BJT);
printf("您输入的的北京时间是%d\n",BJT);

if(BJT<=2359){
    if(BJT>=800){

                    int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    if(UTC>10){
                        UTC=UTC;
                        printf("对应的世界协调时为%d",UTC);
                    }else{
                        printf("对应的世界协调时为0%d",UTC);
                    }

    }else{
                int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    UTC=2400+UTC;
                    printf("对应的世界协调时为前一天的%d",UTC);
               }
}else{
    printf("您输入的的时间有误,必须小于2359"); 

}
return 0;

}

参考:http://zhidao.baidu.com/link?url=qPyEW9fXRQFZzEPEooqP0Cw5hoGDUdTINi_pgQaQATr5xmn2PvsarLwHylIvfVpFLAO3NDT4RAPw3g-jIUpWjRy5Ye5DdupAWP74h_c1mCW