满意答案
h73bft6y
2014.03.01
采纳率:53% 等级:12
已帮助:22811人
/*单链表实现*/
#include
#include
typedef struct _person
{
int num;
struct _person *next;
} person;
person* init(int n)
{
person *h,*p,*tail;
int i;
h=(person*)malloc(sizeof(person));
h->num=1;
h->next=h;
tail=h;
for(i=1;i
{
p=(person*)malloc(sizeof(person));
p->num=i+1;
p->next=tail->next;
tail->next=p;
tail=p;
}
return h;
}
int deal(person *h)
{
person *p,*q;
int n,m;
printf("输入m:\n");
scanf("%d",&m);
for(n=1,p=q=h;p->next!=p;q=p,p=p->next,n++)
if(n%m==0)
{
q->next=p->next;
printf("出列的猴子:\n");
printf("%d\n ",p->num);
free(p);
p=q->next;
n=1;
}
n=p->num;
free(p);
return n;
}
int main()
{
person *h;
int n;
printf("输入n:\n");
scanf("%d",&n);
h=init(n);
printf("猴子大王是: %d\n",deal(h));
return 0;
}
00分享举报