[C程序指针实践演练.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[C程序指针实践演练

指针作业3 :实践演练 实验(一)龟兔赛跑 1.实验目标 传址调用,子函数能直接修改主调函数中的数据 2.实验描述 本程序模拟龟兔赛跑问题。程序将采用生成随机数的方法开发这一问题的仿真程序。 在此比赛中共设了70个点,每个点代表比赛跑道中可能的一个位置。乌龟和兔子从第1个点出发,终点是在第70个点上。 时钟按秒来计算。随着时钟的移动,程序能够根据下述规则来调节乌龟和兔子的位置。 动物 跑动类型 占用时间 跑动量 乌龟 快走 后滑 慢走 50% 20% 30% 向右3个点 向左6个点 向右1个点 兔子 睡觉 大后滑 快走 小步跳 慢后滑 20% 20% 10% 30% 20% 不动 向左9个点 向右12个点 向右1个点 向左2个点 动物从位置1(起跑线)开始比赛。如果动物从点1处向左移动,那么就将此动物重新放回点1的位置。 随着时钟的转动(每次重复循环),打印出乌龟所在的位置和兔子所在的位置,分别以T和H表示。在某些偶然的情况下,参赛者会位于同一点上,在这种情况下,是乌龟赢了兔子。程序应在这一位置上打印“=”。除了“T”“H”“=”外的所有的打印位置都是空白的。 打印完每一行后,测试一下两个动物是否己经达到或超过点70位置。如果超过,就将获胜者的名字打印出来,并终止程序的模拟过程。如果乌龟赢了,那么打印“TORTOISE WINS!!! YAY!!!”,如果兔子赢了,打印“Hare wins. Yuch.”。如果两个动物都没有赢,那么重新执行循环,模拟下一轮的情况。 3.输出结果 。。。 4.问题解决技巧 变量tortoise和变量hare分别存储了乌龟和兔子的当前位置(声明为1~70的整型数)。这两个变量都为main所有,但程序希望在函数调用(如moveT和moveH)过程中时对其进行修改,因此它们必须采用传址方式。 对指针所访问的数据引用应用形式“*指针名”。 程序中要生成一个随机整数i来表示描述占用时间中的百分比,i的范围为1=i=10。对于乌龟而言,当1=i=5时为快走,当6=i=7时为后滑,当8=i=10时为慢走。兔子的跑动方式与其类似。 因程序运行结果较长,TC2.0受结果窗口的限制只能看到最后面的部分结果,若在c-free下运行可看到完整的运行结果。 5. 程序模板 /*race.c*/ #include stdio.h #include stdlib.h #include time.h #define RACE_END 70 /*函数moveT的声明*/ /*函数moveH的声明*/ /*函数printCP的声明*/ int main() { int tortoise =1 , hare =1 , timer = 0; srand(time(0)); printf(ON your mask, Get set\nBang!\nAND theyre off !!!\n); while(tortoise!= RACE_END hare != RACE_END) { /*调用函数moveT*/ /*调用函数moveH*/ /*调用函数printCP*/ ++timer; } if(tortoise = hare) printf(\nTortoise wins!!! YAY!!!\n ); else printf(Hare wins . Yuch.\n); printf(Total %d seconds.\n ,timer); } /*编写函数moveT的定义头部*/ { int x=1+rand()%10; if(x=1 x=5) //快走 *pT += 3; else if (x=6 x=7) //后滑 *pT -= 6; else (*pT)++; //慢走 if( *pT 1 ) *pT = 1; else if(*pT RACE_END) *pT = RACE_END; } /*编写函数moveH定义头部*/ { int x = 1 +rand() % 10; /*编写语句移动兔子*/ /*编写语句测试兔子是否还没开始起跑或者超出终点,处理这种情况*/ } /*编写函数printCurrentPosition定义*/ { int i; if(*pT == *pH) /*编写语句,打印兔子和乌龟的位

文档评论(0)

xiayutian80 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档