qq_38210636
用户aaa
采纳率100%
2018-12-21 16:24 阅读 2.4k

题目内容: UTC是世界协调时……输入样例: 803 输出样例: 3(请问我下面的代码有什么漏洞?)

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

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

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

输入样例:
803

输出样例:
3
代码如下:
#include
#include
int main (void)
{
int BJT,UTC;
printf("输入北京时间BJT:");
scanf("%d",&BJT);
if (BJT < 0)
{
printf("unexpected input,program will quit at once");
return 0;
}
else if (BJT > 2359)
{
printf("unexpected input,program will quit at once");
return 0;
}
else if(BJT>=800&&BJT<=2359)
UTC=BJT-800;
else if(BJT>=0&&BJT<=759)
UTC=1600+BJT;
printf("UTC时间为:%d",UTC);
system("pause");
return 0;

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2018-12-21 08:34

    输入北京时间BJT:
    UTC时间为:
    没让你输出这些
    system("pause");
    也没让你暂停

    点赞 1 评论 复制链接分享

相关推荐