题目内容: 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个回答

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

qq_38210636
qq_38210636 回复caozhy:我设置了输入条件,5个测试点竟然通过了,多谢
10 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_38210636: 唯一可能出现状况的是,输入的时候会不会有不合法的数据,比如输入了 861。如果会,你需要判断,把这个情况报错,如果不会,你的程序也没问题。
10 个月之前 回复
qq_38210636
qq_38210636 改了一下,不过还是没有一个测试点通过。我看了其他人的代码,大家都把小时和分钟分开算,我不知道为什么要把小时和分钟分开算
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!