歡迎采納並追問!
#include <stdio.h>
#include <stdlib.h>
int linktype(int n,int m) //鏈表結構
{
int people,passord;
struct node
{
int data;
struct node *next;
}NODE;
node *p,*head,*q,*pri;
head=(node *)malloc(sizeof(struct node));//創建壹個空表
head->next=NULL;
head->data=1;
q=head;
for(int i=2;i<=n;i++)
{
p=(node *)malloc(sizeof(struct node));//讓系統分配壹塊新的內存
p->data=i;
p->next=NULL;
q->next=p;
q=q->next;
}
q->next=head;//建立循環鏈表
pri=q;p=head;//從head開始循環
people=0;passord=1;//出去了幾個人、記錄的密碼數
while(people<n)
{
pri=pri->next;
p=p->next;
passord++;
if(passord==m)
{
printf("%-4d",p->data);
node *temp;
temp=p;
pri->next=p->next;
p=p->next;
free(temp);
people++;passord=1;
}
}
printf("\n");
return 0;
}
int main()
{
int n,m;
printf("請輸入人數和密碼");
while(scanf("%d%d",&n,&m)!=EOF)
{
if(m<0||n<0)
{
printf("輸入錯誤,請重新輸入\n");
continue;
}
linktype(n,m);
}
system("pause");
return 0;
}