nina


私信TA

用户名:williiiiiin

访问量:21964

签 名:

等  级
排  名 574
经  验 4156
参赛次数 1
文章发表 31
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

解题思路:
用循环链表来做。




注意事项:
注意释放申请的空间。




参考代码:

#include<stdio.h>

#include<stdlib.h>

typedef struct li

{

int data;

struct li *next;

}L;

int main()

{

int i,M,n;

L *header,*p1,*p2;

while(~scanf("%d%d",&M,&n))

{

for(i=1;i<=M;i++)

{

p2=(L*)malloc(sizeof(L));

p2->data=i;

p2->next=NULL;

if(i==1) header=p1=p2;

else

{

p1->next=p2;

p1=p2;

}

}

p1->next=header;

while(M>1)

{

for(i=0;i<n-1;i++) //p1指向要出圈的前一个数

{

p1=p1->next;

}

p2=p1->next;  //p2指向要出圈的数

p1->next=p2->next;

free(p2);

M--;

}

printf("%d\n",p1->data);

free(p1);

}

return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区