代码问题,
 m %= n;
下面还需要继续更新这个值。
			 
		
			
				
				#include<stdio.h>
#include<stdlib.h>
struct Lnode                    /*定义链表*/
{int number;
 int password;
 struct Lnode *next;
 }Lnode,*p,*q,*head;
int main(void)
{int n;            /*n个人*/
 int i,j,k,h;
 int m;           /*初始报数上限值*/
 int a[100],r=0;
 scanf("%d",&k);
 for (h=1;h<=k;h++){ 
 scanf("%d",&n);
 scanf("%d",&m);
 p=NULL;
 q=NULL;
 for(i=1;i<=n;i++)                        /* 建立单链表*/
  {if(i==1)
    {head=p=(struct Lnode*)malloc(sizeof(struct Lnode));
     }
   else
     {q=(struct Lnode*)malloc(sizeof(struct Lnode));
      p->next=q;
      p=q;
      }
    scanf("%d",&(p->password));
    p->number=i;
    }
 p->next=head;                                /*形成循环链表*/
 p=head;
 for (j=1;j<=n;j++)                           /*输出各人的编号*/                                                                     
 {
     for(i=1;i<m;i++,p=p->next);
    m=p->password;
    a[r]=p->number;
    r=r+1;
    p->number=p->next->number;                 /*删除报m的节点*/
    p->password=p->next->password;
    q=p->next;
    p->next=p->next->next;
    free(q);
   }
   a[r]=0;
   r++;
}
for(i=0;i<r;i++){
   if (a[i]!=0)
   printf("%d ",a[i]);
   else printf("\n");
   }
 printf("\n\n");
 system("pause");                             /*等待按任意键退出*/
}