#include<bits/stdc++.h>
#define maxn 50
using namespace std;
bool in[maxn];
//int a[maxn];
queue<int> q;
int c[maxn],t[maxn];
int main()
{
memset(in,0,sizeof(in));
int i,j,k,m,n,code,*p;
printf("请输入总人数和初始密码:");
scanf("%d%d",&n,&code);
p=c;
for(i=0;i<n;i++)
{
*(p+i)=i+1;
printf("第%d个人密码:",i+1);
scanf("%d",&t[i]);//t[i]中存密码
}
i=0;
j=0;
k=0;//k代表报出号码数
m=0;//m代表退出的人数
while(m<n)
{
if(!in[i])
k++;
if(k==code)
{
//a[j]=(*(p+i));//退出则保存
q.push(*(p+i));//退出则入队
in[i]=1;//设入队标志
k=0;
m++;
j++;
code=t[i];
code=code%n?code%n:n;//减少循环次数
}
i++;
if(i==n)//每一个in[i]都判断
i=0;
}
printf("出列顺序为:");
for(i=0;i<j;i++)
{
//printf("%d ",a[i]);
printf("%d ",q.front());
q.pop();
}
system( "PAUSE ");
return 0;
}
09-29
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交