69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#define ARR_SIZE 80
void sort_game(int *p,int n,int k);
int main(int argc, char* argv[])
{
int i,k,n,num[ARR_SIZE];
scanf("%d,%d",&n,&k);
if(k>n) k=n-1;
for(i=0;i<n;i++){
num[i] = i+1;
}
sort_game(num,n,k);
return 0;
}
//---------------------------------------------------------------------------
void sort_game(int *p,int n,int k)
{
int i=0,ck=0,m=0;
while(m<n-1){
if(*(p+i)!=0)ck++;
if(ck==k){
printf("%c%d",(m==0?' ':','),*(p+i));//输出:退出圈子人的编号
*(p+i)=0;
ck=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
printf("\n %d\n",*p); //输出:最后留下的编号
}