请问一下,我写的C语言的龟兔赛跑的代码为啥结果总是错误的QAQ,谢谢了!
题目:
乌龟与兔子在马路上赛跑,马路边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。
假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?
#include
int main()
{
int t,T,a=0,b=0; //a是兔子的路程, b是乌龟的路程
scanf("%d",&T);
for(t=1;t<=T;t++)
{
if(t%10==0)
{
if(a>b)
{
b=b+90-3;
t=t+30;
a=a-9;
}
}
a=a+9;
b=b+3;
}
if(a>b)
printf("^_^ %d",a);
if(aprintf("@_@ %d",b);
if(a==b)
printf("-_- %d",a);
return 0;
}
正确答案在下面 如有帮助 请采纳 非常感谢!!!!!!!!!
#include<stdio.h>
int main()
{
int T;
scanf("%d",&T);
int gui=0,tu=0,t,k;
int i;
for(t=0;t<T;){
if(gui>=tu){
k=0;
for(i=0;i<10;i++){
if(t+i==T)
break;
gui+=3;
tu+=9;
}
t=t+i;
}
else{
if(k==0){
k=1;
for(i=0;i<30;i++){
if(i+t==T)
break;
gui+=3;
}
t+=i;
}
else{
k=0;
for(i=0;i<10;i++){
if(i+t==T)
break;
gui+=3;
tu+=9;
}
t+=i;
}
}
}
if(gui>tu)
printf("@_@ %d",gui);
else if(tu>gui)
printf("^_^ %d",tu);
else
printf("-_- %d",tu);
}
嗯嗯。。。 可以参考下面的代码 试一下:
#include <stdio.h>
int main()
{
int t; // t为时间
int turtle = 0, rabbit = 0; // turtle为乌龟的跑的路程,rabbit为兔子的跑的路程
for (t = 0; t <= 500; t++) {
turtle += 3; // 乌龟每分钟前进3米
if (t % 10 == 0) { // 每跑10分钟,兔子回头看一下乌龟
rabbit += 9; // 兔子每分钟前进9米
if (rabbit > turtle) { // 如果兔子的跑的路程超过乌龟的跑的路程
rabbit += 3 * 30; // 兔子休息30分钟
t += 30; // 时间加30分钟
}
}
if (turtle >= 500) { // 当乌龟的跑的路程达到500米
printf("乌龟跑得快\n");
break;
}
if (rabbit >= 500) { // 当兔子的跑的路程达到500米
printf("兔子跑得快\n");
break;
}
}
return 0;
不知道你这个问题是否已经解决, 如果还没有解决的话: