求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

}

#include<stdio.h>

int main(void)

{

int l,n,c,t,vr,vt1,vt2,s1,s2,w=0

scanf("%d",&l)

scanf("%d",&n)

scanf("%d"帆数,&c)

scanf("%d",&t)

scanf("%d"态磨首,&vr)

scanf("%d",&vt1)

scanf("%d",&vt2)

for(int p[100],d=0d<nd++)

{

p[0]=1

scanf("%d",&p[d+1])

if((p[d+1]-p[d]) >= c)

w=w+c

else

w=w+p[d+1]-p[d]

}

s1=l/vr

if(w <= l)

s2=(l-w)/vt2+w/vt1

else

s2=l/vt1

if(s2 >s1)

printf("What a pity rabbit!")

else

printf("Good job,rabbit!")

return 0//第一游者次帮人写代码,有点小激动

}

类声瞎游汪明文件

#ifndef THJ_h

#define THJ_h

using namespace std

class tor{

public:

int move() //乌龟移动

}

class har{

public:

int move() //兔子移动

}

class jud{

private:

int t_pos //乌龟位置

int h_pos //兔子位置

enum {race_end=100} //赛道长度

public:

jud(int a=0,int b=0){t_pos=ah_pos=b}

void restart() //重新比赛

void update(int t,int h) //磨扰更新乌龟和磨仔兔子的位置

void print_title() //输出标题

void print() //输出当前乌龟和兔子的位置

bool judge(int &winner)const //判断比赛是否结束及胜者

}

#endif

类实现文件

#include "THJ.h"

#include <iostream>

//#include <ctime>

using namespace std

int tor::move()

{

//srand(time(NULL))

int x=rand()*10/(RAND_MAX+1)

if(x>=0 &&x<=4)

return 3

else if(x>=5 &&x<=6)

return -6

else

return 1

}

int har::move()

{

//srand(time(NULL))

int y=rand()*10/(RAND_MAX+1)

if(y>=0 &&y<=1)

return 0

else if(y>=2 &&y<=3)

return -9

else if(y==4)

return 14

else if(y>=5 &&y<=7)

return 3

else

return -2

}

void jud::restart()

{

t_pos=0

h_pos=0

}

void jud::update(int t,int h)

{

t_pos+=t

h_pos+=h

}

void jud::print_title()

{

cout<<"\t乌龟\t兔子"<<endl

cout<<"\t=======\t======="<<endl

}

void jud::print()

{

cout<<"\t"<<t_pos<<"米\t"<<h_pos<<"米\n"

}

bool jud::judge(int &winner)const

{

if(t_pos>=race_end || h_pos>=race_end){

if(t_pos>h_pos)

winner=0

else if(t_pos<h_pos)

winner=1

else if(t_pos==h_pos)

winner=2

return true

}

else

return false

}

主程序

#include "THJ.h"

#include <iostream>

#include <ctime>

using namespace std

int main0() //龟兔赛跑模拟

{

srand(time(NULL))

tor tor

har har

jud jud

int winner

jud.print_title()

while(!jud.judge(winner)){

jud.update(tor.move(),har.move())

jud.print()

}

switch(winner){

case 0:cout<<"**********乌龟赢啦!**********\n\n"break

case 1:cout<<"**********兔子赢啦!**********\n\n"break

case 2:cout<<"**********平局!**********\n\n"break

}

return 0

}


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

原文地址: https://outofmemory.cn/yw/12380224.html

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

发表评论

登录后才能评论

评论列表(0条)

保存