网站大量收购独家精品文档,联系QQ:2885784924

狼羊过河问题程序报告.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
PAGE 4 狼羊过河问题程序报告 护城小兵 一、问题描述 一个人带着一只羊,一条狼和一棵白菜想过河,假设他每次只能带一只羊,或者一条狼,或者一颗白菜过河。并限定人 不 在场时,狼和羊,或羊和白菜不能单独在一起,试编写程序求出他 带一只羊,一条狼和一颗白菜过河办法。 二、结构图 狼羊过河问题 要解决问题全部物品要安全过河羊和菜不能单独在一起狼和羊不能单独在一起 要解决问题 全部物品要安全过河 羊和菜不能单独在一起 狼和羊不能单独在一起 输出两岸情况每次来回都只能带一件 输出两岸情况 每次来回都只能带一件 三、数据结构设计 int check(int arr[]):是自定义的一个判断否有东西被吃的算法. prnstatus(int ar[], int br[], char str[][3]):是是自定义的一个判断两岸状况的算法 ti,tj;定义为 ti,tj 记录上次带的东西,值为-1表示没带东西 char str[3][3]:为定义的一个3*3的字符型数组. 人、羊、狼、白菜到河边四、处理流程图 人、羊、狼、白菜到河边 人先带羊过河 人先带羊过河 人在菜过河 人在菜过河 人在把羊带回来 人在把羊带回来 人把狼带过去 人把狼带过去 人在把羊带过去 人在把羊带过去 人,狼,羊,菜,全部安全过河 人,狼,羊,菜,全部安全过河 五、源程序 #include stdio.h #include stdlib.h int check(int arr[]) { if ( (arr[0]==1 arr[1]==1 arr[2]==0) || (arr[0]==0 arr[1]==1 arr[2]==1) ) return 0; else return 1; } void prnstatus(int ar[], int br[], char str[][3]) { int i; printf( ( a岸现有:); for (i=0;i3;i++) if (ar[i]) printf(%s ,str[i]); printf(. b岸现有:); for (i=0;i3;i++) if (br[i]) printf(%s ,str[i]); printf()\n); } int main() { int a[3]={1,1,1},b[3]={0,0,0}; int i,j,ti=-1,tj=-1; char str[3][3]={菜,羊,狼}; system(cls); while (1) { for (i=0;i3;i++) if ( (tj !=i) (a[i])) { a[i]-=1; b[i]+=1; if ( check(a) ) { printf(%s ab ,str[i]); prnstatus(a,b,str); ti=i; break; } else { a[i]+=1; b[i]-=1; } } if (b[0] b[1] b[2]) break; if ( check(a) check(b) ) { printf( ab ); prnstatus(a,b,str); tj=-1; } else { for (j=0;j3;j++) if ( (ti != j) b[j] ) { a[j]+=1; b[j]-=1; if ( check(b) ) { printf( ab %s,str[j]); prnstatus(a,b,str); tj=j; break; } else { a[i]-=1; b[i]+=1; } } } } system(pause); return 0; } 七、程序测试记录 第一次 检查时没有错误和警告,但运行后没有出现任何内容和

文档评论(0)

我思故我在 + 关注
实名认证
文档贡献者

部分用户下载打不开,可能是因为word版本过低,用wps打开,然后另存为一个新的,就可以用word打开了

1亿VIP精品文档

相关文档