下载此文档

C语言程序设计实验报告.docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
实验报告C语言程序设计专业计算机科学与技术班级0809日期2009-4-3成绩实验组别
第次实验3指导教师卢萍
学生姓名邓入弋学号U200814504同组人姓名数组实验实验名称_、、初始化和使用。
掌握一维数*/
b*/
)
for(i=0;i<M1;i++)/*按次序输出出圈人的编号*/
printf("m",b[i]);
printf("m\n”,a[0]);/*输出圈中最后一个人的编号*/)
(2)上面程序用数组元素的值表示圈中人的编号,每当有人出圈时都要压缩数组,这种算法不够精炼。如果采用做标记的办法,即每当有人出圈时对相应数组元素做标记,省掉压缩数组的时间,这样处理效率更高一些。请采用做标记的办法修改(1)中程序,使修改后的程序与(1)中程序具有相同的功能。
填写代码后,源程序如下:
#include<>#defineM10#defineN3voidmain(void)(
inta[M],b[M];/*数组a存放圈中人的编号,数组b存放出圈人的编号*/inti,j,k;M*/
1对圈中人按顺序编号/*for(i=0;i<M;i++)
a[i]=i+1;
for(i=M,j=0;i>1;i--)(/*i表示圈中人个数,初始为M个,剩1个人时结束循环;j表示当前报数人的位置*/
for(k=1;k<=N;k++)/*1至N报数*/
if(++j>i-1)j=0;/*最后一个人报数后第一个人接着报,形成一个圈*/a[j-1]a[j+1];/*将报数为:N的人的编号存入数组b[M-i]=j?b*/
if(j)/*压缩数组afor(k=--j;k<i;k++),使报数为N的人出圈*/a[k]=a[k+1];}/*for(i=0;i<M
1;i++)按次序输出出圈人的编号*/
,b[i]);printf("m”/*输出圈中最后一个人的编号*/m\nprintf(,a[0]);
}程序运行结果:
ie
(2)上面程序用数组元素的值表示圈中人的编号,每当有人出圈时都要压缩数组,这种算法不
够精炼。如果采用做标记的办法,即每当有人出圈时对相应数组元素做标记,省掉压缩数组的时
间,这样处理效率更高一些。请采用做标记的办法修改(1)中程序,使修改后的程序与(1)中
程序具有相同的功能。编写程序如下:#include<>#defineM10#defineN3voidmain(void)(inta[M],b[M];/*inti,j,k;for(i=0;i<M;i++)/*a[i]=i+1;for(i=M,j=0;i>1;i--)
数组a存放圈中人的编号,数组b存放出圈人的编号*/对圈中人按顺序编号1—M*/
/*i表示圈中人个数,初始为
M个,剩1个人时结束循环;j表示当前报数人的位置*/
(
for(k=1;k<=N;k++)/*1
(
if(++j>M)j=1;/*
if(a[j-1]==0)k--;/*
)
b[M-i]=a[j-1];/*
a[j-1]=0;/*
至N报数*/
最后一个人报数后,第一个人接着报*/碰到已标记的元素,报数减1*/将报数为N的人的编号存入数组b*/)
for(i=0;i<M-1;i++)prin

C语言程序设计实验报告 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人likuilian1
  • 文件大小41 KB
  • 时间2022-03-13