求C语言编写一个龟兔赛跑的程序。

求C语言编写一个龟兔赛跑的程序。,第1张

/*乌龟每分钟3米。兔子每分钟9米,每10分钟回头看乌龟是否落后,落后则休息30分钟。输入时间t*/

#include <stdio.h>

int main()

{

int t=0,trab=0,T,dtur=0,drab=0

/*定义外界时间t,兔子时间trab,输入时间T,乌龟跑的距离dtur,兔子跑的距离drab*/

int rest=0/*定义休息标识1,初始化为0*/

printf("请输入兔子和乌龟已经跑了的时间:")

scanf("%d",&T)

while(t!=T)

{

dtur+=3//乌龟移动 

if(rest!=1)//如果兔子不在休息状态 

{

trab++//兔子时间流逝 

drab+=9//兔子移动 

}

t++//外界时间流逝 

if(trab%10==0&&rest==0)

{//如果兔子时间是10的整数倍且兔子不在休息状态,则回头查看和乌龟的距离 

if(drab>dtur)//如果兔子在乌龟前面 

{

rest=1

trab+=30//兔子休息,兔子时间先增加30,等外界时间追上 

}

}

if(t==trab)//如果外界时间增加到和兔子时间一样,则唤醒兔子 

rest=0

}

printf("兔子,乌龟分别了%d米,%d米  ---> ",drab,dtur)

if(drab>dtur)

{printf("兔子快!!\n")}

else if(drab<dtur)

{printf("乌龟快!!\n")}

else if(drab==dtur)

{printf("一样快!!\n")}

return 0

}

下面这段代码模拟了龟兔赛跑爬山的情况,其中有个时钟触发设置每秒执行一次循环,乌龟的规则是:50% 的机会快走(右移三格)20% 的机会下滑(左移六格)30% 的机会慢走(右移一格).

兔子的规则是:20% 的机会睡觉(不移动)20% 的机会大跳(右移九格)10% 的机会大滑(左移十二格)30% 的机会小跳(右移一格)20% 的机会小滑(左移两格).

其中最先走到整 70 格的胜利,超过 70 格的从头开始程序在一条线上打印了龟兔移动的轨迹,当两者重合时打印 P乌龟用 G 表示,兔子用 T 表示.

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void guitu(void)

main()

{

srand(time(NULL))

guitu()

return 0

}

void guitu()

{

int i,j,count=0,cou=0,number

char printfun[71]

while(1) {

for(j=0j<70j++)

printfun[j]=' '

printfun[71]=''

number=rand()%10+1

printf("n")

if(1<=number &&number<=5) {

count=count+3

if(count>70) count=0

printfun[count]='G'

}

if(6<=number &&number<=7) {

count=count-6

if(count<0) count=0

printfun[count]='G'

}

if(8<=number &&number<=10) {

count=count+1

if(count>70) count=0

printfun[count]='G'

}

if(1<=number &&number<=2) {

cou=cou+0

printfun[cou]='T'

}

if(3<=number &&number<=4) {

cou=cou+9

if(cou>70) cou=0

printfun[cou]='T'

}

if(number==5) {

cou=cou-12

if(cou<0) cou=0

printfun[cou]='T'

}

if(6<=number &&number<=8) {

cou=cou+1

if(cou>70) cou=0

printfun[cou]='T'

}

if(9<=number &&number<=10) {

cou=cou-2

if(cou<0) cou=0

printfun[cou]='T'

}

if(count==cou)

printfun[count]='P'

printf("%s",printfun)

printf("nn")

if(count==70) {

printf("gui win!!!nn")

break

}

if(cou==70) {

printf("tu win!!!nn")

break

}

sleep(1)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11152510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存