#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct number{
int num;
struct number *next;
};
struct number * create(int n);
int n,k,l;
struct number *head,*p1,*p2;
void main (void)
{
printf("请输入参与人数\n");
scanf("%d",&n);
printf("请输入每人持有的密码M\n");
scanf("%d",&l);
printf("\n");
k = 1;
p1 = create(n);
while (n != 0)
{
if(!(k % l))
{
printf("%d\n",p1->num);
p2->next = p1->next;
n--;
}
p2 = p1;
p1 = p1->next;
k++;
}
getch();
}
struct number *create(int n)/*创建循环列表*/
{
int i;
p1 = (struct number *)malloc(sizeof(struct number) );
head = p1;
for(i = 1; i < n; i++)
{
p1->num = i;
p2 = p1;
p1 = (struct number *)malloc(sizeof(struct number) );
p2->next = p1;
}
p1->num = n;
p1->next = head;
return head;
}
评论0