首页
登录
从业资格
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】
题库
2022-08-02
55
问题
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 若一个矩阵中的非零元素数目很少且分布没有规律,则称之为稀疏矩阵对丁tm行n列的稀疏矩阵M,进行转置运算后得到n行m列的矩阵MT,如图3-1所示
图3-1稀疏矩阵M及其转置矩阵MT 为了压缩稀疏矩阵的存储空间,用三元组(即元素所在的行号、列号和元索宜、表示稀疏矩阵中的一个非零元素,再用一维数组逐行存储稀疏矩阵中的所有非零三素也称为三元组顺序表)。例如,图3-1所示的矩阵M相应的三元组顺序表如表3-1所示.其转置矩阵MT的三元组顺序表如表3-2所示。
函数TransposeMatrix(Matrix M)的功能是对用三元组顺序表表示的稀疏矩阵M进行转置运算。 对M实施转置运算时,为了将M中的每个非零元素直接存入其转置矩阵MT三元组顺序表的相应位置,需先计算M中每一列非零元素的数目(即MT中每一行非零几素的数目),并记录在向量num中;然后根据以下关系,计算出矩阵M中每列的第一个非零元素在转置矩阵MT三元组顺序表中的位置: cpot[0] = 0 cpot[j] = cpot[ j-1]+num[j-1]〕 /* j为列号 */ 类型ElemType, Triple和Matrix定义如下: typedef int ElemType; typedef struct{ /* 三元组类型 */ int r,c; /* 矩阵元素的行号、列号 */ ElemType e; /* 矩阵元素的值 */ }Triple; typedef struct{ /* 矩阵的元组三元组顺序表存储结构 */ int rows,cols,elements; /* 矩阵的行数、列数和非零元素数目 */ Triple data[MAXSIZE]: }Matrix; 【C函数】int TransposeMatrix(Matrix M){ int j , q , t; int *num, *cpot; Matrix MT; /* MT是M的转置矩阵 */ num =(int*)malloc(M.cols*sizeof(int)); cpot =(int*)malloc (M.cols*sizeof(int)); if(!num || !cpot) return ERROR;MT. rows = (1) ; /*设置转置矩阵MT行数、列数和非零元数目*/ MT. cols =(2); MT.elements = M.elements; if (M. elements > 0){for (q = 0 ; q < M. cols ; q++)num[q] = 0;for (t = 0 ; t < M. elements ; ++t ) /* 计算矩阵M中每一列非零元素数目 */ num [M.data [t].c]++: /* 计算矩阵M中每列第一个非零元素在其转置矩阵三元组顺序表中的位置 */(3) ; for(j = 1 ; j<M. cols ; j++) cpot[j] = (4): /* 以下代码完成转置矩阵MT三元组顺序表元素的设置 */ for(t = 0 ; t<M.elements ; t++){ j = (5) /* 取矩阵M的一个非零元素的列号存入j */ /*q为该非零元素在转置矩阵MT三元组顺序表中的位置(下标)*/ q = cpot[j]; MT. data[q].r = M. data[t].c; MT. data[q].c = M. data[t].r; MT. data[q].e = M. data[t].e; ++cpot[j]; /* 计算M中第j列的下一个非零元素的目的位置 */ }/* for */ }/* if */free(num); free(cpot); /* 此处输出矩阵元素,代码省略 */ return OK;}/*TransposeMatrix*/
选项
答案
解析
转载请注明原文地址:https://tihaiku.com/congyezige/2428220.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(
函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(
在软件开发中使用函数库可()。A.提高软件的执行速度 B.降低系统负载 C.
若程序中定义了局部变量与全局变量,则()。A.在函数内只能访问局部变量,而不能访
调用递归过程或函数时,处理参数及返回地址需要用一种称为()的数据结构。A.队列
在Excel的A1单元格中输入函数“=ROUND(14.9,0)”,按回车键后,
在Excel的A1单元格中输入函数“=TRUNC(8.9)”,按回车键之后,A1
在Excel的B1单元格中输入函数“=countif(a1:a6,">60")”
函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方
所有在函数中定义的变量都称为()。A.全局变量 B.局部变量 C.简单变量
随机试题
[originaltext]M:Doyouwanttogotothelecturethisweekend?Iheartheguy
Topuniversitieshavebeencalledontopublishlistsof"banned"A-levels
某软件项目实施过程中产生的一个文档的主要内容如下所示,该文档的主要作用是( )
完善的全口义齿制作至少需要使用的架为A.简单架 B.平均值架 C.半可调架
下列含氧酸中,酸性最强的是()。A. B.HClO C.HBrO D.
下列属于进度付款申请单的内容的有()。A、当期应支付金额总额B、当期根据支付分
开展好课外活动的基本要求有哪些?
阅读材料回答下列问题:一般资料:求助者,女性,24岁,未婚,某机关公务员。案例介
A.发生在眼睑则引起局部高度水肿 B.初期为散在性红斑或水疱,水疱壁透明 C
由曲线y=x3,直线x=1和Ox轴所围成的平面图形绕Ox轴旋转一周所形成的旋转体
最新回复
(
0
)