首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设有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-19
50
问题
设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m报数,如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编制函数Josegh()实现此功能并调用函数WriteDat()把编号按照出圈顺序输出到文件OUT59.DAT中。
设n=100,s=1,m=10进行编程。
注意;部分源程序已给出。
请勿改动主函数main()和写函数WriteDat()的内容。
试题程序:
#include<stdio.h>
#define N 100
#define S 1
#define M 10
int p[100],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,s1,w; s1=s; for{i=1;i<=n;i++) /*给n个人从1到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=s1;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/yZcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
假设两个带符号的整数相减,下列叙述中正确的是______。
所谓“变号操作”是指将一个有符号整数变成绝对值相同,但符号相反的另一个整数。假设使用补码表示的8位整数x=10010101,则x经过变号操作后结果为 ( )。
在请求页式存储管理中,当进程对页面( )时,进行地址转换操作。
Windows98支持多种不同类型的文件系统,并可以安装第三方提供的文件系统。Windows98环境下,DVD—ROM采用的文件系统为______。
下面关于网络中通信与数据通信的叙述中,正确的是( )。
下面是关于Pentium微处理器工作模式的叙述,其中错误的是
当前计算机系统中根据CPU指令组设计风格,将计算机分为两大类,这两大类计算机的英文缩写为______。
将PC机组成以太局域网必须用到网卡、中继器和集线器等设备,其中的一种设备可用来对接收到的信号进行再生放大,扩大网络的传输距离,并通过它来连接网络中的各个结点机,把一个端口接收到的信息向所有的端口分发出去,这种网络设备是______。
8段共阳极LED数码管示意如图所示,为了显示字符9,其二进制代码(按dpgfedcba的顺序排列)是()。
在实时系统中,在给定时间内系统可以处理的事件总数称为【67】。实时系统中的另一个指标用于衡量输入数据的有效等待时间,超过了这个时间,处理器即使接收到输入数据,也不能够给出有用的输出数据,这个时间的名称是【68】。
随机试题
滥用行政权力排除、限制竞争的行为,是我国《反垄断法》规制的垄断行为之一。关于这种行为,下列哪些选项是正确的?()
(2014)关于孤立系统熵增原理,下述说法错误的是()。
主控项目是保证安装工程安全和使用功能的重要检验项目,其要求是()。
下列关于施工文件立卷的表述,正确的有()。
旅游接待工作中导游员必须遵循的行为规范有()。
A、 B、 C、 D、 C第一组图都可一笔画成,第二组图都由两笔画成。
根据下列资料,回答101~105题。2010年我国在线教育市场规模为491.1亿元,到2015年在线教育市场突破千亿元大关,达1171亿元。与热闹的市场相对的是,行业整体面临较大的盈利困难。截至2015年年底,我国约有9500家从事互联网教育的公司
A.changingB.allowedontoC.brokersA.womenshouldbe【T7】______thenewtradingfloorB.werenot【T8】______orjobber
"TheissueofonlineprivacyintheInteractagefoundnewurgencyfollowingtheSept.11terroristattacks,sparkingdebateove
Americanconsumerslikeconvenienceverymuch.Duringthelast50years,therehasbeenadramaticincreaseinsuchlabor-saving
最新回复
(
0
)