假设有n个人(0<n<20),每个人分配一个序号,现在从编号为一的人开始报数,报到m的人出列,剩下的人依旧围成一圈,直到所有人出列。
我的编码错在哪呢?想不太明白,感觉没有什么问题,请各位神仙指点一二
#include
int main()
{
int a=0,i=1,k=0;
int n,m;
int b[10000];
scanf("%d%d",&n,&m);
if(n<=0||n>=20||m<=0||m>=20)
{
printf("ERROR");
}
else
{
for(i=1;i<=n;i++)
{
b[i]=i;
}
while(1)
{
a++;
if(a==m)
{
k++;
if(b[i]>0)
{
printf("\t%d",b[i]);
b[i]=0;
a=0;
}
if(k==n)
{
break;
}
}
i=(i+1)%n;
}
}
return 0;
}