首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一道ACM题的RE有关问题

2014-01-05 
求助一道ACM题的RE问题题目地址:http://www.acm.uestc.edu.cn/problem/show/3我的代码如下:(有点拉杂,多多

求助一道ACM题的RE问题
题目地址:http://www.acm.uestc.edu.cn/problem/show/3
我的代码如下:(有点拉杂,多多包涵)

#include <stdio.h>
#include <string.h>

int main()
{
int X, Y, T, S;
int t, subT;
int HuanChong = 0, BoFang = 0;
int IsEnd = 0;
float Time, pastTime,YiYou;
char oTime[900]={0};
char bTime[30]={0};
HuanChong = 0;
BoFang = 0;
pastTime = 0;
scanf("%i", &T);
for (t = 1; t <= T; t++)
{
scanf("%i %i %i %i", &X, &Y, &subT, &S);

HuanChong = subT * Y;

YiYou = HuanChong;
Time = 0;
if (YiYou>=S)
{
IsEnd = 1;
Time=S*1.0/X;
sprintf(bTime,"Case #%i: %.3f\n", t , Time);
strcat(oTime,bTime);
Time = 0;
BoFang = 0;
HuanChong = 0;
YiYou=0;
pastTime=0;
}
while (!IsEnd)
{
Time++;
BoFang = BoFang + X;
HuanChong = HuanChong + Y;
if (BoFang >= HuanChong)
{
BoFang = 0;
Time = pastTime+((YiYou)*1.0 / (X - Y));
YiYou = (subT + Time)*Y;
pastTime = Time;
}
if (BoFang >= S)
{
Time = Time + (((BoFang - S)*1.0) / X);
IsEnd = 1;
sprintf(bTime,"Case #%i: %.3f\n", t , Time);
strcat(oTime,bTime);
Time = 0;
BoFang = 0;
HuanChong = 0;
YiYou=0;
pastTime=0;
}
}
IsEnd =0;
}
printf("%s",oTime);
return 0;
}

本地测试没问题,上传就报Runtime Error。我个人怀疑可能是strcat函数出问题,但是我找不到确切的出错原因,请大家帮我看看。。。
[解决办法]
strcat一直在增长,最后溢出了
[解决办法]
引用:
strcat一直在增长,最后溢出了

同意.题目指明最多可有1000个测试用例,LZ把所有输出用strcat合并到oTime(根据其定义最多只能放900个字符)将溢出.
建议不要用strcat和oTime,改为每个用例直接输出bTime.

热点排行