首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下—个人重新开始从1到m报数,如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编制函数Josegh
设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下—个人重新开始从1到m报数,如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编制函数Josegh
admin
2009-02-24
22
问题
设有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 100
#define S 1
#define M 10
int 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
);
fprintf (fp, "%4d",p
);
if (i%10==0)
{
printf ("\n");
fprintf (fp, "\n");
}
}
fclose (fp);
}
选项
答案
void Josegh(void) { int i, j,k,sl,w; s1=s; for (i=l; i<=n; i++) /*给n个人从到n编号*/ p[i-1]=i; for (i=n; i>=2; i--) { s1= (s1+m-1) %i; /*下一个开始报数的人的编号是(s1+m-1 )%i*/ if (s1==0) /*若s1为0,则说明要开始报数的是最后一个人*/ s1=i; w=p [s1-1]; /*将要出圈的人移至数组的最后*/ for (j=sl; j<=i-1; j++) p[j-1]=p[j]; p[i-1]=w; } }
解析
本题考查的知识点如下:
(1)将数组建成环。
(2)运算符“%”的使用。
(3)循环的嵌套使用。
此题是著名的“约瑟夫环”问题。首先要将每个人的编号存入数组。因为每次是从s1开始报数,若是直线队则下一个开始报数的人的编号是s1+m-1,但这里要建立一个环,即最后一个人报完数后第一个人接着报数。所以这时下一个开始报数的人的编号足(s1+m-1)%i,i是此时圈中的总人数。若所得的结果为0,则说明要开始报数的是最后一个人。在此人前面的那个人就是要出圈的人,使用循环将要出圈的人移至数组的最后。开始时,总人数为n,以后依次减1,直到最后一个人出圈。
转载请注明原文地址:https://kaotiyun.com/show/ZRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
在文件系统中,文件的逻辑结构可分为两类,它们是【】文件和记录式文件。
在设备管理中,独占设备往往速度较慢,资源利用率很低,为此引入了______,即共享设备模拟独占设备。
若关系模式R中只包含两个属性,则
下列对进程间相互通信的描述错误的是
与其他查找方法相比,哈希查找法的特点是()。
设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),问新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列哪一个排序算法一趟扫描的结果?
对数据库结构的描述和定义存储在_____中,它是DBMS运行的基本依据。
关于并行数据库系统的叙述中,错误的是
为了实现数据终端设备之间的通信,在通信网络中必须设置交换中心,以便为需要通信的数据终端建立通信链路,通信结束后再拆除链路。目前在Internet网络中使用的交换技术主要是
在数据文件in.dat中存放有200组数据,每组有3个数,每个数均是三位数。函数readDat()实现读取这200组数据并存放到结构体数组aa中。请编写函数jsSort(),其功能是:要求在200组数据中找出每组数据中的第一个数大于第二个数与第三个数之和.
随机试题
A.先煎B.后下C.包煎D.另煎E.与他药同煎(2005年第88,89题)细辛入汤剂宦()
患者,男,19岁,既往有癫痫病史2年,长期服用卡马西平控制良好。1周前,患者无明显诱凶感胸骨后烧灼感,无腹痛、腹泻、恶心、呕吐等。查体:腹平软,无压痛及反跳痛,肝脾肋下未触及,肠鸣音正常。胃镜检查提示:胃食管反流病。医嘱:西咪替丁胶囊,口服,一次400mg
在Word2010中,查找范围的默认项是查找___________。
在下列哪些情况下使用作品,可以不经著作权人许可,不向其支付报酬?( )
在某建设项目单因素敏感性的分析图中,三个不确定因素的敏感程度由大到小排序是()。
关于全玻幕墙安装的技术要求,下列叙述正确的是()。
代理理论认为,高支付率的股利政策有助于降低企业的代理成本,但同时也会增加企业的外部融资成本。( )
简述信度和效度的关系。
形成性评价与终结性评价的主要差异在于()。
A、 B、 C、 B传达信息的陈述句→与得到信息相符的回答
最新回复
(
0
)