#include<stdio.h>
#define MAXSIZE 100
struct
{
int cur ;
int number;
int secret_node;
}space[MAXSIZE];
int main(void)
{
int n,n2;
int i=0;
int t=0;
int mima;
int j,k=0;
int x;
int y=1;
printf("人数总数:");
scanf("%d",&n);
printf("\n\n请输入原始密码:");
scanf("%d",&mima);
printf("\n\n");
for(i=0;i<n;i++)
{
space[i].cur=i+1;
space[i].number=y++;
printf("序号: %d---->>----密码: ",space[i].number);
scanf("%d",&space[i].secret_node);
}
printf("\n\n");
space[n-1].cur=0;
n2=n;
for(j=1;j<n2;j++)
{
if(mima%n==0)
x=n-2;//循环次数
else if(mima%n==1)
x=n-1;
else
x=mima%n-2;
for(i=1;i<=x;i++)
t=space[t].cur;
k=t;//删除元素前一个元素的下标
printf("出列人序号%d--->>>---密码是%d\n",space[space[k].cur].number,space[space[k].cur].secret_node);
mima=space[space[k].cur].secret_node;
t=space[space[k].cur].cur;//下一个元素的下标
space[k].cur=space[space[k].cur].cur;//被删除元素的上一个元素的浮标记住被删除元素的cur(被删除元素下一个元素的下标)
n=n-1;
}
printf("出列人序号%d--->>>---密码是%d\n",space[space[t].cur].number,space[space[t].cur].secret_node);
return 0;
}