早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c语言问题麻烦哪位仁兄帮帮忙一个旅行社要从m个游客中选出一名旅客,为他提供免费旅行服务,选择方法是让m个游客围成一个圆圈,然后从信封中取出一张纸条,用上面写着的正整数n作为

题目详情
c语言问题麻烦哪位仁兄帮帮忙
一个旅行社要从m个游客中选出一名旅客,为他提供免费旅行服务,选择方法是让m个游客围成一个圆圈,然后从信封中取出一张纸条,用上面写着的正整数n作为报数值,第一个人从1开始一个人一个人按顺时针报数,报到第n个游客时,令其出列。然后再从下一人开始,从1 顺时针报数,报到第n个游客时,再令其出列……,直到圆圈中只剩下一个人为止。此人即为优胜者,将获免费旅行服务,例如n=3,m=8,出列的顺序将为3、6、1、5、2、8、4,最初编号为7的游客最获免费旅行服务。
最好能详细,配好NS流程图
▼优质解答
答案和解析
#include
#include
#define N 8
#define M 4
typedef struct node
{
int data;
struct node *next;
}linknode,*linklist;
int main()
{
linklist h,p,q;
int i=1;
p=(linknode*)malloc(sizeof(linknode));
p->data=1;
p->next=p;
h=p;
while(++i<=N)
{
q=(linknode*)malloc(sizeof(linknode));
q->data=i;
q->next=p->next;
p->next=q;
p=p->next;
}
for(i=0;i<16;i++)
{
printf("%d\n",h->data);
h=h->next;
}
puts("******************************");
p=h;
while(p!=p->next)
{
i=M-2;
while(i--)
p=p->next;
q=p->next;
printf("%d\t",q->data);
p->next=q->next;
p=p->next;
free(q);
}
printf("%d\n",p->data);
return 0;
}这个是我做习题写的 N是总人数 M是逢M退出 自己改宏定义就可以找到最后的那个人的编号了!!
看了 c语言问题麻烦哪位仁兄帮帮忙...的网友还看了以下:

赶快回答,一定要是正确的答案在数-7,-8,-6,5,4,3中任取若干个不同数相乘(1)去哪四个数  2020-05-13 …

关于功的正负问题做功的正负与速度方向的选取有关吗?沿速度正方向做功一定是正功吗?选取哪个方向为正方  2020-05-17 …

文言文阅读。桓南郡小儿时,与诸从兄弟各养鹅共斗。南郡鹅每不如,甚以为忿。乃夜往鹅栏间,取诸兄弟文言  2020-06-18 …

(三)(13分)桓南郡小儿时,与诸从兄弟各养鹅共斗。南郡鹅每不如,甚以为忿。乃夜往鹅栏间,取诸兄弟  2020-06-20 …

文言文阅读。桓南郡小儿时,与诸从兄弟各养鹅共斗。南郡鹅每不如,甚以为忿。乃夜往鹅栏间,取诸兄弟鹅悉  2020-06-20 …

桓南郡小儿时,与诸从兄弟各养鹅共斗。南郡鹅每不如,甚以为忿。乃夜往鹅栏间,取诸兄弟鹅悉杀之。既晓,  2020-06-20 …

桓南郡①小儿时,与诸从兄弟各养鹅共斗。南郡鹅每不如,甚以为忿。乃夜往鹅栏间,取诸兄弟鹅悉杀之。既晓  2020-06-20 …

x取哪些正整数时,代数式(8-3x)/7的值分别符合下列条件.(x取哪些正整数时,代数式(8-3x)  2020-11-07 …

sinx,x取何值时为正?另外再说明一下cosx,说明他们俩个的x取值与正负的关系,也就是说,x取哪  2020-11-08 …

高中《经济生活》的几个问题,1.根据影响消费的因素说明国家正采取哪些措施保障人民的生活水平1.根据影  2021-01-24 …