全球旧事资料 分类
数据结构第一次实验报告
题目:猴子选大王
09计算机科学与技术一班王振(0982053)
题目描述:

只猴子,编号为1,2,3,……
,现在要在这N只猴子中选出一个大王。让这N只猴子围成一圈坐下,从编号为1的猴子为起始点开始数一个数,数到的猴子便离开这个选大王的队列。一直重复这个过程,直到最后剩下一只猴子便是选出的大王。猴子的数量和数的数字M均由键盘输入。
实验内容和步骤:
第一部分:顺序表方法
现在让N只猴子按照顺序围成一圈,可以用指针指向数组的方法给数组赋值,其中要求输入的数字M小于猴子的数量N。
从1开始数到m的猴子出列,即用指针移动查找法将计数器数到m的指针指向的内容变为0,用for循环,直到只有一个元素不为0时,最后不为0的元素的值即为大王。第一步建立数组,填入猴子编号及猴子出局时报的数第二步从第一个猴子报数第三步数到m让指针指向元素变为0第四步继续报数,重复第三步
在数组中依次填入1234…ptri
tcalloc
sizeofi
tI
itialize
ptrFi
dKi
g_poi
term
ptrfreeptrretur
0
循环一次指针向后移一位所指元素不为0时计数器加1移动指针当计数器数到m时将指针所指元素设为0代码如下:voidI
itializei
t
i
tptri
tifori0i
iptrii1
终止循环,直到输出到最终元素不为0的元素即为选出的大王,输出大王的编号,代码如下:
ifptr2ptr

fptr2ptr指针所指元素不为0时计数器加1ifptr20i计数器数到m时将指针所指元素设为0ifimptr2i0cou
t用于终止循环最后不为0的元素的值即为大王的编号forptr2ptrptr2ifptr20pri
tf
好听全球资料 返回顶部