早教吧作业答案频道 -->其他-->
根据源程序代码画出流程图利用循环链表求约瑟夫环出列顺序.要求编号为1、2、3……n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).开始任选一个正整数作为报数上限m,从第一
题目详情
根据源程序代码画出流程图
利用循环链表求约瑟夫环出列顺序.要求编号为1、2、3……n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).开始任选一个正整数作为报数上限m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,此时报m的人出列,并将他的密码作为新的m值,从他下一个人开始按顺时针方向重新从1报数.如此循环,直到所有的人全部出列为止.
源程序
#include
#include
struct Lnode /*定义链表*/
{int number;
int password;
struct Lnode *next;
}Lnode,*p,*q,*head;
int main(void)
{int n; /*n个人*/
int i;
int m; /*初始报数上限值*/
int j;
printf("please enter the number of people n:"); /*输入测试人的数量*/
scanf("%d",&n);
if(npassword));
p->number=i;
}
p->next=head; /*形成循环链表*/
p=head;
printf("please enter the number m:");
scanf("%d",&m);
printf("The password is:\n");
for (j=1;jpassword;
printf("%d ",p->number);
p->number=p->next->number; /*删除报m的节点*/
p->password=p->next->password;
q=p->next;
p->next=p->next->next;
free(q);
}
}
利用循环链表求约瑟夫环出列顺序.要求编号为1、2、3……n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).开始任选一个正整数作为报数上限m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,此时报m的人出列,并将他的密码作为新的m值,从他下一个人开始按顺时针方向重新从1报数.如此循环,直到所有的人全部出列为止.
源程序
#include
#include
struct Lnode /*定义链表*/
{int number;
int password;
struct Lnode *next;
}Lnode,*p,*q,*head;
int main(void)
{int n; /*n个人*/
int i;
int m; /*初始报数上限值*/
int j;
printf("please enter the number of people n:"); /*输入测试人的数量*/
scanf("%d",&n);
if(npassword));
p->number=i;
}
p->next=head; /*形成循环链表*/
p=head;
printf("please enter the number m:");
scanf("%d",&m);
printf("The password is:\n");
for (j=1;jpassword;
printf("%d ",p->number);
p->number=p->next->number; /*删除报m的节点*/
p->password=p->next->password;
q=p->next;
p->next=p->next->next;
free(q);
}
}
▼优质解答
答案和解析
图已发请查收
看了根据源程序代码画出流程图利用循...的网友还看了以下:
一个图形按1:2放大和按2:1缩小有什么不一样不好意思,打错了,应该是:一个图形按1:2放大和按2 2020-05-14 …
用正三角形和正六边形按如图所示的规律拼图案,即从第二个图案开始,每个图案都比上一个图案多一个正六边 2020-05-17 …
(2009•长春)用正三角形和正六边形按如图所示的规律拼图案,即从第二个图案开始,每个图案都比上一 2020-05-17 …
如图,把一些相同的菱形,按如图的方式排列,就构成一些大小不同的菱形,其中第一个图形中有3个菱形,第 2020-07-06 …
如图,下列图形都由同样大小的十字星图案按一定的规律组成,其中第一个图形有1个十字星图案,第二个图形 2020-07-22 …
用火柴棒按右图的方式搭日字形,按这样的规则搭下去...第一个图形是日,第2个是田,第3个是田日并起来 2020-11-07 …
把一个图形先按1:2缩把一个图形先按1:2缩小后,再按3:1放大,得到的图形与原图形比较是[]A.变 2020-11-08 …
按图的方法,用火柴棒搭六边形.(第一个图一个六边形;第二个图第一层一个,第二层两个;第三个图第一层一 2020-11-10 …
下面是由一些长短相等的木棍按一定规律拼成的图形,第n个图形由n个正方形组成则第一个图中有4根木棍,第 2020-11-26 …
几个vb编程题(图形操作)1.在窗体上放置一个图形框,两个命令按钮,设置标题为“画图”和“返回”。单 2020-12-02 …