设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每10人一组,给出这n个人的顺序表。请考生编写函数Josegh(void)实现此功能,并调用函数writeDat,把结果P输出到文件out.dat中。 设n=100,s=1,m=10。 ①将1到n个人的序号存入一维数组P中; ②若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置; ③重复第②步直至圈中只剩下p[1]为止。 注意:部分源程序已经给出。 请勿改动主函数main和输出数据函数writeDAT的内容。

设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每10人一组,给出这n个人的顺序表。请考生编写函数Josegh(void)实现此功能,并调用函数writeDat,把结果P输出到文件out.dat中。 设n=100,s=1,m=10。 ①将1到n个人的序号存入一维数组P中; ②若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置; ③重复第②步直至圈中只剩下p[1]为止。 注意:部分源程序已经给出。 请勿改动主函数main和输出数据函数writeDAT的内容。


相关考题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,则此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去,直到所有的人都出圈为止。现要求按出圈次序,每10人一组,给出这n个人的顺序表。设n=100,s=1,m=10。(1)将1到n个人的序号存入一维数组p中;(2)若第i个人报数后出圈,则将p置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置:(3)重复第(2)步,直至圈中只剩下p[1]为止。include<stdio.h>define N 100define S 1define M 10void main(){int p[100],n,s,m;m=M;n=N;s=S;int i,j,s1,w;s1=s;for(i=1;(1);i++)(2)=i;for(i=n;i>=2;i--){s1=(3);if(s1==0)s1=i;w=(4);for(j=s1;j<i;j++)p[j-1]=p[j];p[i-1]=(5);printf("%4d",p[i])}}

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]这是一个求解Josephus问题的函数。用整数序列1,2,3…,n表示顺序围坐在圆桌周围的人,并采用数组表示作为求解过程中使用的数据结构。Josephus问题描述,设n个人围坐在一个圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后从出局的下一个人重新开始报数,数到第m个人,再让他出局,…如此反复直到所有的人全部出局为止。[C函数]void Josephus(int A[],int n,s,m)(int i,j,k,temp;if(m==O){printf("m=0是无效的参数!\n");return;}for(i=0;i<n;i++) A[i]=i+1; /*初始化,执行n次*/i= (1) /*报名起始位置*/for(k=n;k>1;k-){if((2)) i=0;i=(3) /*寻找出局位置*/if(i!=k-1){tmp=A[i];for(j=i;J<k-1;j++) (4);(5);}}for(k=0;k<n/2;k++){tmp=A[k];A[k]=A[n-k+1];A[n-k+1]=tmp;}}

设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下—个人重新开始从1到m报数,如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编制函数Josegh()实现此功能并调用函数WriteDat()把编设n=100,s=1,m=10进行编程。注意:部分源程序已给出。请勿改动主函数main()和写函数WritsDat()的内容。试题程序:include<stdio.h>define N 100define S 1define M 10int p[lOO],n,s,m;void WriteDat(void);void Josegh(void){}void main(){m=M; n=N; s=S;Josegh ( );WriteDat ();}void WriteDat(void){int i;FILE *fp;fp=fopen ( "OUT59. DAT", "w" );for (i=N-1; i>=0;i--){printf("%4d",p[i]);fprintf (fp, "%4d",p [i] );if (i%10==0){printf ("\n");fprintf (fp, "\n");}}fclose (fp);}

设有n个人围坐一圈并按顺时针方向从l到n编号,从第s个人开始进行l到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始l到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每l0人一组,给出这n个人的顺序表。请考生编写函数Josegh(void)实现此功能,并调用函数writeDat,把结果P输出到文件out.dat中。 设n=100,s=1,m=10。 ①将l到n个人的序号存入一维数组P中; ②若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置; ⑨重复第②步直至圈中只剩下p[1]为止。 注意:部分源程序已经给出。 请勿改动主函数main和输出数据函数writeDAT的内容。

30个人围坐在一起轮流表演节目。他们按顺序从1到3依次不重复地报数,数到3的人出来表演节目,并且表演过的人不再参加报数,那么在仅剩一个没表演过节目的时候,共报数多少人次?()A. 87B. 117C. 57D. 77

某班军训,20个同学排成一行,若从左起第2个人开始隔1个人报数,小李报8号;若从右起第3个人开始隔2人报数,小陈报6号。那么若从小陈开始向小李逐个报数,则小李报的数为:A.8 B.10 C.12 D.14

100个人排成一列,排头到排尾从1开始依次报数,数到5的整数倍的人出列休息,每数完一轮,再由排头从1开始重新报数,进行到第几轮时全排人数少于30?( )A.6B.7C.8D.9

具体要求如下: 让 N 只候选猴子围成一圈(最多100只猴子),从某位置起顺序编号为 1 ~ N 号;从第 1 号开始报数,每轮从 1 报到 3 ,凡报到 3 的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数;如此不断循环,最后剩下的一只猴子就选为猴王。 测试输入:5 预期输出:4号猴子是大王。 测试输入:18 预期输出:14号猴子是大王。

/* 报数游戏:n个小朋友在学校操场上围成一圈玩报数游戏,要求用双向链表实现。游戏规则是如下所示: (1) 从第k个小朋友开始轮流报数; (2) 如果某个小朋友报数是m,则立即从圈中离开,下一个小朋友继续从1开始报数; (3) 为了增加游戏的趣味性,报数方向向左或向右,标志变量direction的值为0向左,为1向右,游戏过程中方向不改变 (4) 最后一个离队的小朋友获得“最美丽女孩”称号; (5) 游戏中的n,m,k,direction在游戏之前确定。 */