首页 >> 大全

猴子选大王系统的设计与实现

2024-01-09 大全 29 作者:考证青年

2. 猴子选大王系统的设计与实现 2.1 问题的描述

一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1--m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。

2.2 问题分析和任务定义

(1)输入数据:输入m,n。m,n 为整数,n

(2)输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能。

2.3 数据类型和系统设计

(1)存储结构设计

采用循环链表来存储“猴子的编号”,无需头结点。

(2)系统功能设计

①创建循环链表;

②向单链表中填入猴子的编号;

③找到第一个开始报数的猴子;

④数到n让猴子出列;

⑤接着开始报数,重复第三步;只剩下最后一只猴子;

⑥输出猴子的信息。

2.4 编码实现

#

#

(1)定义猴子群的结构体

Node

{ int data; //数据域,用来存储猴子编号

Node *next;//指针域

猴子选大王存储结构设计_猴子选大王算法思想_

}Node,*;

(2)创建一个链表,将猴子编号并入链表中

(int n)

{ int i;

Node *head,*p;//定义两个指针变量

head=()(( Node));

head->next=head;

for(i=1;i

{ p=()(( Node));//申请头结点,并赋予空间

p->next=head->next;

head->next=p;

p=head;

for(i=0;i

{ p->data=i+1;

p=p->next;

head;//返回头指针

(3)循环遍历链表

int ( head,int ,int )

{ int j=1,k;

Node *p=head,*q;

for(;>1;--)

{ k=1;

while(k!=)

{ p=p->next;

k++;

("第%d个出队列的是%d号猴子,\n",j++,p->data);

p->data=p->next->data;

q=p->next;

p->next=p->next->next;

p->data;

(4)主函数

int main()

{ int m,n,king;

("请输入猴子个数:");

scanf("%d",&m);

head=(m);

("请输入要报的数:");

scanf("%d",&n);

king=(head,m,n);

("%d号猴子是大王\n",king);

2.5 测试结果

筛选过程及结果,如图

tags: next

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了