2020个学生排成一排圈最后剩下的人为什么是144号呢?

  //下面是排队编号函数:从h 开始嘚n个人依次编号1到n

  /*下面函数表示从指针h处开始的人数为boy个人排队从1报数,每报到call的人出列*/

  p 工作指针表示从头依次指向每个元素,点名

  chu 计数器记录出列的人数

  callnum 计数器,记录点名次序

  p=h; //开始时工作指针指向数组首

  *h=*p; //把最后一个出列人的编号记入地址开始处

  *p=0; //出列后,将其编号赋零,以示区别

  p++; //工作指针移向下一个人,即下一个数组元素

  if(p>h+boy-1)p=h;/*如果移到最后一个元素的后面,则让指向地址開头继续报数*/

  int a[N]; //用数组模拟队列,每个元素代表一个人

  printf("\n最后留下来的是 %d 号\n",*a);/*在函数中,已经把最后一个人的编号写入了数组首地址处,

  這里输出就可以了*/

}
有10个人围成一圈,顺序排号.从第一個人开始报数(从1到3报数),凡报到了的人退出圈子,问最后留下的是原来第几号的那位.(请写一个函数来计算)
这个题目应该在“凡报到了”和“的人”中间缺了一个数字,比如,“凡报到了3的人”,这样才说得通.
1到2到3 再到1到2到3 再到1到2到3 最后到1 所以是第一号~
}

我要回帖

更多关于 20个学生排成一排 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信