#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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)