1 / 19
文档名称:

本科生实验报告.doc

格式:doc   大小:298KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

本科生实验报告.doc

上传人:pppccc8 2020/10/2 文件大小:298 KB

下载得到文件列表

本科生实验报告.doc

相关文档

文档介绍

文档介绍:本科生实验报告(二)姓名:学院:专业:班级:实验课程名称:数据结构实验日期:2013年5月25日指导教师及职称:实验成绩:开课时间:2012〜2013学年第二学期实验题目数据结构实验小组合作姓名班级学 号3一、实验目的数组和广义表:实验6・1:求5*5阶螺旋方阵;::求两个对称矩阵之和与乘积;:实现稀疏矩阵(采用三元组表示)的基木运算;:实现广义表的基本运算。++、*5的螺旋炬阵。*n(n<10)阶方阵(顺时针方向旋进)。1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9主程序如下:#inclucle""#include<>#defineMaxLen10voidfun(inta[MaxLen][HaxLen],intn){inti,j,k二0,m;if(n%2==0) //m=en/2um二n/2;elsem=n/2+l;for(i=0;i<m;i++){for(j=i;j<n-i;j++){k++;a[i][j]=k;}for(j二i+1;j<n-i;j++){k++;a[j][n-i-l]=k;}for(j=n-i-2;j>=i;j—){k++;}for(j=n-i-2;j>=i+l;j—){k++;[j][i]=k;voidmainO{intn,i,j;inta[MaxLen][MaxLen];printf(,z输入n(n<10);scanf("%d",&n);fun(a,n);printf("%d阶数字方阵如下:\rT,n);for(i二0;i<n;i++){for(j=0;j<n;j++)printfC%4d",a[i][j]);printf("\n,z);}}运行结果:•C:\f\Debug\*An<n<10>:5介教字方阵如下:12 3 416171819242014 23 22 :如果矩阵A屮存在这样的一个元索A[i][j]满足条件:A[i][j]是第i行屮值最小的元素,且又是第j列中值报大的元素,则称为该矩阵的一个马鞍点。设计一个稈序exp6-*n的矩阵A的所有马鞍点。主程序如下:#inelude<>#defineM4#defineN4voidMinMax(intA[M][N]){inti,j;boolhave二false;intmin[M],max[N];for(i=0;i<M;i++) //计算出每彳亍的最小值元素,放入min[0..\卜1]之,屮{min[i]=A[i][0];for(j二1;j〈N;j++)if(A[i][j]<min[i])min[i]=A[i][j];}for(j二0;j〈N;j++) 〃计算出每列的最大值元索,放入max[0..NT]Z屮{ max[j]=A[0][j];for(i=l;i<M;i++)if(A[i][j]>max[j])max[j]=A[i][j];}for(i=0;i<M;i++) //判定是否为马鞍点for(j=0;j<N;j++)if(min[i]==max[jl){printfCA[%d][%d]=%d\rT,i,j,A[i][j]);//显示马鞍点have二true;}if(!have)printfC没有鞍点\n");}voidmain(){inti,j;intA[M][N]={{9,7,6,8},{20,26,22,25},{28,36,25,30},{12,4,2,6}};printf("A矩阵:\n");for(i二0;i<M;i++){for(j=0;j<N;j++)printf(〃%4d〃,A[i][j]);printfC\n,z);}printfCA矩阵屮的马鞍点:\rT);MinMax(A); 〃调用MinMax()找马鞍点}运行结果:9202812726364622252825306p矩阵中的马較点:AL2][2]=:已知A和B为两个n*n阶的对称矩阵,输入时,对称矩阵只输入下三角形元素,存入一维数组,(对称矩阵M存储在一维数组A中),设计一个稈序exp6-:(1) 求对称矩阵A和B的和。(2) 求对称矩阵A和B的乘积。Xod XiaM=・・••••…X22®Xn---Xn-1J--Xn・12•……Xn-Ln-1^A:Xo,2Xl,2Xl,2X