数组实验实验报告Word格式.docx

上传人:b****5 文档编号:19936047 上传时间:2023-01-12 格式:DOCX 页数:19 大小:159.72KB
下载 相关 举报
数组实验实验报告Word格式.docx_第1页
第1页 / 共19页
数组实验实验报告Word格式.docx_第2页
第2页 / 共19页
数组实验实验报告Word格式.docx_第3页
第3页 / 共19页
数组实验实验报告Word格式.docx_第4页
第4页 / 共19页
数组实验实验报告Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数组实验实验报告Word格式.docx

《数组实验实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《数组实验实验报告Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

数组实验实验报告Word格式.docx

10;

i++)

printf("

%6d"

a[i]);

\n"

);

return0;

}

voidsort(intb[],intn)

inti,j,t;

n-1;

for(j=0;

j<

n-i-1;

j++)

if(b[j]<

b[j+1])

t=b[j],b[j]=b[j+1],b[j+1]=t;

2.源程序完善、修改、替换

(1)下面的源程序用于求解瑟夫问题:

M个人围成一个圈,从第一个人开始依次从1直N循环报数,每当报数为N时报数人出圈,直到圈中只剩下一个人。

请在源程序中的下划线处填写适当的代码来完善程序。

stdio.h>

#defineM10

#defineN3

inta[M],b[M];

inti,j,k;

M;

a[i]=i+1;

for(i=M,j=0;

i>

1;

i--){

for(k=1;

k<

=N;

k++)

if(++j>

i-1)j=0;

b[M-i]=j?

____:

___;

if(j)

for(k=--j;

i;

________________;

}

M-1;

b[i]);

%6d\n"

a[0]);

(2)上面的程序中使用数组元素的值表示圈中人的编号,故每当有人出圈是都要压缩数组,这种算法不够精炼。

如果采用做标记的方法,即每当有人出圈是对相应数组元素做标记,从而可省掉压缩数组的时间,这样处理效率会更高一些。

因此,请采用做标记的方法修改〔1〕中的程序,并使修改后的程序与〔1〕中的程序有相同的功能。

3.跟踪调试程序

在下面所给的源程序中,函数strncat(s,t,n)本来应该讲字符数组t的前n个字符链接到字符数组s中字符串的尾部。

但是函数strncat在定义是代码有误,不能实现上述功能,请按下面的要求进行操作,并答复下列问题和排除错误。

(1)单步执行源程序。

进入函数strncat后观察表达式s、t和i。

当光条落在for语句所在行是吗,i位多少?

当光条落在strnca函数块结束标记所在行时,s,t分别为和值?

i=22s和t没有变化

(2)分析函数出错的原因,排除错误,是函数正确实现功能,最后写出程序的结果。

#include<

voidstrncat(char[],char[],int);

chara[50]="

Theadoptedsymbolis"

b[27]="

abcdefghijklmnopqrstuvwxyz"

;

strncat(a,b,4);

%s\n"

a);

voidstrncat(chars[],chart[],intn)

inti=0,j;

while(s[i++]);

n&

&

t[j];

s[i++]=t[j++];

s[i]='

\0'

4.程序设计

编写并上机调试运行实现以下功能的程序:

(1)编写一个程序,从键盘读入数据,对一个3*4矩阵进行赋值,求其转置矩阵,然后输出原举这个和转置矩阵。

(2)编写一个程序,其功能要求是:

输入一个整数,将他在内存中二进制表示的每一位转换成对应的数字字符,存放在一个数组中,然后输出该整数的二进制表示.

(3)编写一个程序,其功能是:

输入n个学生的和c语言课程的成绩,将成绩按从高到低的次序排序,同时做相应的调整,输出排序后的和成绩。

然后,输入一个c成绩,用二分进行搜,如果搜到,输出和成绩,没有,输出“notfound!

”。

5.选做题

编写并上机调试运行能实现以下功能的函数和程序:

(1)编写函数strnins(s,t,n),其功能是:

将字符数组t中的字符串插入到字符数组中的第n个字符的后边。

(2)编写一个实现八皇后问题的程序。

输出所有解法。

三、实验步骤

1.源程序改错:

voidsort(intb[],intn);

voidsort(int[],int);

sort(a,10);

if(b[j]>

〔1〕

i--)

{

i-1)j=0;

a[j-1]:

a[i];

a[k]=a[k+1];

〔2〕

inta[M],b[M];

inti,j,k,t;

for(i=0;

i<

i++)

a[i]=i+1;

for(i=M,j=0;

i>

1;

i--)

for(k=1;

k<

=N;

k++)

for(;

a[j]>

j++);

if(j++>

=(M-1))j=0;

a[M-1];

b[M-i]=a[j-1];

a[j-1]=11;

else

for(t=1;

a[M-t]>

t++);

b[M-i]=a[M-t];

a[M-t]=11;

i<

M-1;

b[i]);

if(a[i]<

11)printf("

while(s[i]!

='

s[i++];

ctype.h>

inti,j;

chars[3][5],c;

pleaseinputyourjuzhen:

3;

5;

c=getchar();

if(isdigit(c))

s[i][j]=c;

thejuzhenyouinputis:

4;

putchar(s[i][j]);

putchar('

\n'

thejuzhenhasbeenchangedinto:

#defineMAX16

intmain()

intn,i;

chars[MAX];

pleaseinputanumber:

scanf("

%d"

&

n);

if(n>

=-32768&

n<

=32767)

;

wrong:

thenumberistoolarge"

return-1;

=0)

n!

=0;

s[i]=n%2+'

0'

n/=2;

=MAX-1;

n=-(n+1);

=MAX-2;

MAX-1;

if(s[i]=='

1'

elseif(s[i]=='

for(i=MAX-1;

putchar(s[i]);

〔3〕

stdlib.h>

intbinsearch(intn,ints[],intx);

inti,j,m,n,k,a;

ints[10];

structstudents{

char*name;

intgrade;

}ACM[7]={

{"

zhang"

90},

li"

69},

wang"

87},

zhao"

73},

sun"

83},

tian"

92},

ying"

82}

};

structstudentst;

malloc(sizeof(structstudents));

theoriginallistis:

\nname\tgrade\n"

for(m=0;

m<

=6;

m++)

%s\t%d\n"

ACM[m].name,ACM[m].grade);

6;

6-i;

if(ACM[j].grade>

ACM[j+1].grade)

t=ACM[j],ACM[j]=ACM[j+1],ACM[j+1]=t;

nowthelistis:

for(k=0,m=0;

=6&

k++,m++)

s[k]=ACM[m].grade;

for(m=6;

m>

m--)

pleaseinputagrade:

);

a=binsearch(n,s,7);

if(a==-1)

thenumberhasnotbeenfound\n"

ACM[a].name,ACM[a].grade);

intbinsearch(intn,ints[],intx)

intlow,high,mid;

low=0;

high=x-1;

while(low<

=high)

mid=(low+high)/2;

if(n<

s[mid])

high=mid-1;

elseif(n>

low=mid+1;

returnmid;

voidstrnins(char*s,char*t,intn);

intn;

chars[]="

oh,ihave"

chart[]="

failedagain"

theoriginalstringsis:

\n%s\n"

s);

theoriginalstringtis:

t);

strnins(s,t,n);

nowthestringis:

voidstrnins(char*s,char*t,intn)

for(i=1;

=n&

(*s)!

s++,i++)

(*t)!

s++,t++)

*s=*t;

*s='

inti,j,k,l,m,n,o,p;

intq=0;

theanswerof8queensarelistasfollow:

=8;

for(j=1;

if(j==i||j==i+1||j==i-1)

continue;

if(k==i||k==i+2||k==i-2||k==j||k==j+1||k==j-1)

for(l=1;

l<

l++)

if(l==i||l==i+3||l==i-3||l==j||l==j+2||l==j-2||l==k||l==k+1||l==k-1)

for(m=1;

if(m==i||m==i+4||m==i-4||m==j||m==j+3||m==j-3||m==k||m==k+2||m==k-2||m==l||m==l-1||m==l+1)

for(n=1;

n++)

if(n==i||n==i+5||n==i-5||n==j||n==j+4||n==j-4||n==k||n==k+3||n==k-3||n==l||n==l-2||n==l+2||n==m||n==m+1||n==m-1)

for(o=1;

o<

o++)

if(o==i||o==i+6||o==i-6||o==j||o==j+5||o==j-5||o==k||o==k+4||o==k-4||o==l||o==l-3||o==l+3||o==m||o==m+2||o==m-2||o==n||o==n+1||o==n-1)

for(p=1;

p<

p++)

if(p==i||p==i+7||p==i-7||p==j||p==j+6||p==j-6||p==k||p==k+5||p==k-5||p==l||p==l-4||p==l+4||p==m||p==m+3||p==m-3||p==n||p==n+2||p==n-2||p==o||p==o-1||p==o+1)

(1,%d)\t(2,%d)\t(3,%d)\t(4,%d)\t(5,%d)\t(6,%d)\t(7,%d)\t(8,%d)\t\n"

i,j,k,l,m,n,o,p);

q++;

q);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1