int main()
{
int i, j, n, m, curm=0, list[11] = {0};
printf("Enetr n,m: ");
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i++) list[i] = i;//编号
for (i = 1; i <= n; i++)
{
curm++;//报数(每次加一代表报了一个数)
if (curm == m)
{
curm = 0;//重报(报到m,重新开始报)
printf("%3d", list[i]);//出局
for (j = i; j < n; j++) list[j] = list[j+1];//出局的人后面的人前移
n--;i--;//人数减一;由于i的位置原来的人出局,现在又被后面的人填满,仍然从原来i处开始报数
}
if (i == n) i = 0;//换轮(一轮报完,从前开始报)
if (n == 0) break;//结束(n为0时说明没人了,则结束游戏)
}
return 0;
}