约瑟夫环--数组课设.docVIP

  • 9
  • 0
  • 约2.97千字
  • 约 11页
  • 2016-12-15 发布于江苏
  • 举报
2010年双学士软件开发环境作业报告 约瑟夫生死游戏 --之数组解决(选做) 问题背景 有30个乘客同乘一艘船,因为严重超载,加上风高浪大,危险万分,因此船长告诉乘客,只有将全船一半乘客投入海中,其余人才能幸免于难。无奈,大家只得同意这种办法,并议定给30个人进行编号,30个人按编号围成一圈,由第i个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,数到第9人,再将他扔到大海中,如此循环地进行,直到剩下15个乘客为止。问哪些位置是将被扔下大海的位置。 解决方案 选用30个元素数组作为变量来存放结果,先全部初始化为1,如果这个人被丢到海里了,就把对应位置的元素变量置0;再用一个变量依次对数组里不为0的元素计数,数到9则把对应位置的数组元素置0;循环控制可以用乘客数量来控制;初始为30,每有一个元素被置0,则乘客数量减1,直到15。 程序流程图 Out函数的流程图为: 需求分析 概要设计 typedef struct LNode /* 定义结构体*/ { int data[MAX]; }LNode; LNode * Create(int m) { int i; LNode *h; h=(LNode *)malloc(sizeof(LNode)); if(h!=NULL) //判断 {

文档评论(0)

1亿VIP精品文档

相关文档