面试中的程序题,没有写出来,后来百度了一下,发现时计算机二级考试中的大题。一般有两种方法,1使用数组,对n个人的数组(初始化全为1)进行标记,报到m的标为0。2使用循环链表。
int baoShu(int n,int m)
{
int flag,i,j=0;
int *arr=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
arr[i]=1;
for(i=1;i<n+1;++i)
{
flag=0;
while(flag<m)
{
if(j==n)
j=0;
if(arr[j])
++flag;
++j;
}
arr[j-1]=0;
printf("The %4d out person num is: %4d\n",i,j);
}
free(arr);
return j;
}