📄 cyclist.c
字号:
typedef struct LNode{
int data;
struct LNode *next;
}*linklist,LNode;
int sum;
linklist first;
linklist linklist_create(linklist head)
{
int i;
linklist p,q,k;
head=(linklist)malloc(sizeof(LNode));
p=head;
p->data=1;
for(i=2;i<=sum;i++)
{
q=(linklist)malloc(sizeof(LNode));
q->data=i;
p->next=q;
p=p->next;
}
p->next=head;
return(head);
}
linklist delete_out(linklist head,int m,int k)
{
int i,j;
linklist p,q;
p=head;
for(i=1;i<m;i++)
{
p=p->next;
}/*找到起始位置*/
for(j=0;j<sum;j++)
{
for(i=1;i<k-1;i++)
{
p=p->next;
}
q=p->next;
printf("%5d",q->data);
p->next=p->next->next;
p=p->next;
free(q);
}/*delete函数的主作用-输出先后离桌的人的次序(或编号)*/
}
out(linklist head)
{
linklist p;
int i;
p=head;
for(i=0;i<sum;i++)
{
printf("%5d",p->data);
p=p->next;
}
}
void main()
{
int m,k;
linklist head;
clrscr();
printf("请输入桌子的人数n=");
scanf("%d",&sum);
printf("\n请输入起始的位置m(m>0且m<=n)");
scanf("%d",&m);
printf("\n请输入轮流的人数大小k=");
scanf("%d",&k);
head=linklist_create(first);
out(head);
printf("\n这是离桌人的次序\n");
delete_out(head,m,k);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -