




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验目的采用三元组表存储表示,求稀疏矩阵M转置函数T实验内容编程序并上机调试运行。采用三元组表存储表示,求稀疏矩阵M转置函数T编写程序/采用三元组表存储表示,求稀疏矩阵M转置函数T#include#define MAXSIZE 100typedef structint i,j;int e;Triple;typedef structTriple dataMAXSIZE+1;int mu,nu,tu; TSMatrix; /创建稀疏矩阵M CreateSMatrix(TSMatrix *M) int i,m,n,e,k; printf(输入矩阵M的行数、列数、非零元的个数(中间用逗号隔开):);s
2、canf(%d,%d,%d,&(*M).mu,&(*M).nu,&(*M).tu);(*M).data0.i=0;printf(n);for(i=1;i=(*M).tu;i+)doprintf(输入第%d个非零元素所在的行(1%d)列(1%d)值以及该数值:,i,(*M).mu,(*M).nu);scanf(%d,%d,%d,&m,&n,&e);k=0;if(m(*M).mu|n(*M).nu) k=1;if(m(*M).datai-1.i|m=(*M).datai-1.i&n(*M).datai-1.j)k=1;while(k);(*M).datai.i=m;(*M).datai.j=n;(
3、*M).datai.e=e; printf(n);return 1; /输出稀疏矩阵Mvoid PrintSMatrix(TSMatrix M) int i;printf(*n);for(i=1;i=M.tu;i+)printf(%2d%4d%8dn,M.datai.i,M.datai.j,M.datai.e);printf(*n);printf(n);/求稀疏矩阵M的转置矩阵T void TransposeSMatrix(TSMatrix M,TSMatrix *T) int p,q,col;(*T).mu=M.nu;(*T).nu=M.mu;(*T).tu=M.tu;if(*T).tu)q
4、=1;for(col=1;col=M.nu;+col) for(p=1;p=M.tu;+p)if(M.datap.j=col) (*T).dataq.i=M.datap.j;(*T).dataq.j=M.datap.i;(*T).dataq.e=M.datap.e;+q;return 1;/打印矩阵函数,以通常形式输出矩阵 void print(TSMatrix A) int k=1,a,b;int MMAXSIZEMAXSIZE;printf(非零元素所对应的位置:n);printf(*n);for(a=0;aA.mu;a+) for(b=0;bA.nu;b+)Mab=0;while(k=A
5、.tu)MA.datak.i-1A.datak.j-1=A.datak.e;k+;for(a=0;aA.mu;a+)printf( | );for(b=0;bA.nu;b+)printf(%d ,Mab);printf( | n);printf(*n);printf(n);/主函数int main()TSMatrix M,T;printf(创建矩阵M:); CreateSMatrix(&M);printf(矩阵M的三元组表为:n);PrintSMatrix(M);print(M);TransposeSMatrix(M,&T);printf(稀疏矩阵M的转换矩阵T的三元组表为:n);PrintS
6、Matrix(T);print(T); printf(nn);getchar();return 0;运行程序:程序解析:1.首先是将程序的开头写好,定义非零元个数最多为100.定义非零元的行下标,列下标,和非零元素为int型。由mu,nu,tu分别代表矩阵的行数,列数和非零元个数。2. 创建稀疏矩阵M。创建一个稀疏矩阵,用scanf进行用户输入行数,列数及非零元个数。当i小于等于非零元个数时,进行以下的for循环,执行内循环的循环语句。当k不为0时,重复执行输入非零元素的行列值以及其值,若超出行数或列数或非零元个数,则跳出循环。加入外循环,执行外循环的三个语句,直到,i等于非零个数,跳出外循环
7、。3.输出稀疏矩阵M用PrintSMatrix函数输出稀疏矩阵,从i等于1循环执行到i等于非零元个数,使非零元的行列数一个一个输出。4. 求稀疏矩阵的转置矩阵。用TransposeSMatrix函数实现稀疏矩阵M转置为矩阵T。让T的行等于M的列,T的列等于M的行。非零元素相等。当非零元素不等于零时,就执行if语句,if语句中两个for循环和一个if循环实现了MT矩阵行列的对调,按列序求转置。最后返回1.5. 打印函数,输出非零元素对应的位置这里定义一个M的数组,当a小于行数数,执行内循环,使b的列数不断增加,赋值为0,在执行外循环,b变为1,执行内循环,在赋值为0,然后再跳出内循环,执行外循环,如此直到,a等于行数则跳出外循环。执行下面的while语句。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农庄基地出租合同范本
- 买卖物业用房合同范本
- 医疗行业会议服务合同范例
- 厨房灭火维保合同范本
- 合资购车经营合同范本
- 吊车合伙经营合同范本
- 含税购货合同范本
- 运动俱乐部协议合同范本
- 蔬菜配送合同范本
- 入股餐厅合同范本
- 《抖音营销教程》课件
- 2025届山东核电校园招聘正式启动笔试参考题库附带答案详解
- 2025安徽芜湖市运达轨道交通建设运营限公司招聘129人高频重点模拟试卷提升(共500题附带答案详解)
- 2025年湖南科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025届江苏省无锡市江阴实验中学中考联考历史试题含解析
- 2024年安徽省高校分类考试对口招生语文试卷真题(含答案)
- 中国高血压防治指南(2024年修订版)解读课件
- 公路工程标准施工招标文件(2018年版)
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- (高清版)JTG 3370.1-2018 公路隧道设计规范 第一册 土建工程
- 小学科学冀人版六年级下册全册同步练习含答案
评论
0/150
提交评论