sinat_22921691 2015-02-08 14:14 采纳率: 0%
浏览 3313

刚学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

  • 写回答

3条回答 默认 最新

  • sinat_22921691 2015-02-08 14:15
    关注

    #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;
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能