蓝桥杯基础练习求大佬帮忙看看有什么错误,多谢。。。。

梦屿~千寻 2019-01-30 07:32:29
龟兔赛跑
话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
  然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。
输入格式
  输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)
输出格式
  输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
  第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。

代码如下:
#include<stdio.h>
int main()
{
int v1,v2,t,s,l,i,flag=0;
scanf("%d%d%d%d%d",&v1,&v2,&t,&s,&l);
int t1=l/v1,t2=l/v2,l1=0,l2=0;
for(i=1;i<=t2;i++)
{
l1+=v1;
l2+=v2;
if(flag--)
{
l1-=v1;
}
if(l1-l2>=t&&l1<l)
{
flag=s;
t1+=s;
}
}
if(t1>t2)
{
printf("T\n");
printf("%d",t2);
}
else if(t1==t2)
{
printf("D\n");
printf("%d",t1);
}
else
{
printf("R\n");
printf("%d",t1);
}
return 0;
}
...全文
185 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦屿~千寻 2019-02-03
  • 打赏
  • 举报
回复
引用 1 楼 niiiloc的回复:
你的t1赋值逻辑有问题,存在重复+s的情况 还有,最后的结果比较用l1就可以了,为什么还要用t1去比较
对哦,谢谢大佬了。。。。
636f6c696e 2019-01-31
  • 打赏
  • 举报
回复
你的t1赋值逻辑有问题,存在重复+s的情况 还有,最后的结果比较用l1就可以了,为什么还要用t1去比较

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧