首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设有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
24
问题
设有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://www.kaotiyun.com/show/ZRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
根据某些条件对一个关系作水平分解,选择符合条件的元组组成一个新的关系,这样的操作称为
在数据库技术中,实体-联系模型是一种
数据库管理系统的数据模型有______三种。
在嵌入式SQL中,______是SQL和主语言的接口。
第(38)至(41)题基于"学生-选课-课程"数据库中的三个关系:S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)若要求查找选修"数据库技术"这门课程的学生姓名和成绩,将使用关系
数据库系统的三级模式结构中,描述数据库中数据的物理结构和存储方式的是【】。
下列各种中断中,()是强迫性中断。Ⅰ、硬件故障中断Ⅱ、访管中断Ⅲ、输入|输出中断Ⅳ、缺页中断Ⅴ、地址越界中断
云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,通常包括软件即服务、平台即服务、基础设施即服务。其中_______即服务是指通过网络提供操作系统和相关服务,而无需下载或安装。
在SQLServer2008中,有两种身份验证模式,一种是混合身份验证模式,另一种是【9】身份验证模式。
在SQLServer2008中,设log1是SQLServer身份验证模式的数据库服务器登录帐户。现要授予log1具有创建数据库的权限,请补全下列语句:EXECsp_addsrvrolemember’log1’。’【9】’
随机试题
证明:若数列{an}满足下列条件之一,则{an}是无穷大数列:
Fearisoftena【C1】______emotion.Whenyoubecomefrightened,manyphysicalchangesoccurwithinyourbody.Yourheartbeatand【
与接合有关的细菌结构是
下列哪项符合营养性缺铁性贫血
黄某因患急性阑尾炎在某医院进行了阑尾切除手术。术后回到家后,黄某仍然觉得腹部十分疼痛。几天后,黄某再次来到该医院进行检查,医院建议其再次手术。黄某马上进行了二次手术,结果在其腹部取出了上次手术时使用的纱布。黄某因此向法院起诉要求医院承担其医疗过失所引起的责
一男性,22岁,近几个月由于内心痛苦而向心理医生倾诉:“明知自己是个男的,但却只对男性有爱慕之情,见到身体强壮肌肉发达的男性,心中特别愉悦。但想到现实中又不能跟个男人结婚,心中十分痛苦。”经体格、神经及内分泌检查均未发现异常。这种心理障碍属于哪一种?(
根据意识对物质的依赖性和能动性,应承认()。
假如重力突然消失,下列情况还存在的是()。
求微分方程y"’+6y"+(9+a2)y’=1的通解,其中常数a>0.
InSeptember,inBritain,youmayseealotofbirds【C1】______onroofsandtelegraphwires.Thesebirdsareswallows.Theyare【
最新回复
(
0
)