這個問題叫:約瑟夫環。
如果妳是在命令行下運行程序,妳可以給main函數參數。
int *init_yuesefu(int n)
{
if(n<=0)
return NULL;
int *ysf=malloc(sizeof(int)*n);
int i;
for(i=0;i<n;i++)
ysf[i]=0;
}
int main(int argc, char *argv[])
{
if(argc<2)
return -1;
int n=atoi(argv[1]);
int ysf=init_yuesefu(n);
……
return 0;
}
省略號部分是約瑟夫環的算法,退出圈子的用1標記,比如ysf[5]=1;下次循環的時候遇到值為1的就跳過去。