1、二概要设计1. 设定数组的抽象数据类型定义:ADT SparseMatrix数据对象:D= m和n分别称为矩阵的行数和列数数据关系:R=Row,ColRow=|1=i=m,a=j=n-1 Col=m-1,amu,&nu,&tu);n if(T-tuMAXSIZE|T-mu21) printf(非零个数超出定义范围!出错! exit(0); for(k=1;ktu;k+)请输入第%d个非零元素的行数,列数及其值:,k); scanf(datak.i,&datak.j,&datak.e);void AddRLSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix *Q)
2、 /稀疏矩阵相加 int p,q,k=1; if(M.mu!=N.mu|M.nu!=N.nu)你的输入不满足矩阵相加的条件! exit(1); Q-mu=M.mu;Q-nu=M.nu; for(p=1,q=1;p=M.tu&qdatak.i=M.datap.i;datak.j=M.datap.j;datak.e=M.datap.e+N.dataq.e; p+;q+;k+; else if(M.datap.jdatak.i=N.dataq.i;datak.j=N.dataq.j;datak.e=N.dataq.e; else if(M.datap.i k+; else if(M.datap.i
3、if(p!=M.tu+1) for(;=M.tu;p+) if(q!=N.tu+1)q+)void SubRLSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix *Q) /稀疏矩阵相减你的输入不满足矩阵相减的条件!datak.e=M.datap.e-N.dataq.e;datak.e=-N.dataq.e;int MulTSMatrix(RLSMatrix M,RLSMatrix N,RLSMatrix *Q) /稀疏矩阵相乘 int ccol=0,tp,brow,t,arow,p,q,i; int ctempMAXSIZE+1; if(M.nu!=N.mu)
4、printf(你的输入不满足矩阵相乘的条件! return 0;nu=N.nu;tu=0; if(M.tu*N.tu!=0) for(arow=1;arow=M.mu;+arow) for(i=1;irposarow=Q-tu+1; if(arowM.mu) tp=M.rposarow+1; else tp=M.tu+1; for(p=M.rposarow;tp;+p) brow=M.datap.j; if(browN.mu) t=N.rposbrow+1; else t=N.tu+1; for(q=N.rposbrow;t;+q) ccol=N.dataq.j; ctempccol+=M.d
5、atap.e*N.dataq.e; for(ccol=1;ccolnu;+ccol) if(ctempccol) if(+Q-MAXSIZE) return 0; Q-dataQ-tu.i=arow;tu.j=ccol;tu.e=ctempccol; return 1; void PrintSMatrix(RLSMatrix Q) /输出稀疏矩阵 int k=1,row,line;n运算结果: if(Q.tu=0) printf(0 else for(row=1;row=Q.mu;row+) for(line=1;linetu的值,导致在输出函数里没有执行针对该情况的if判断语句。在加减函数里,每增加一个非零元,Q-tu加一。(3)问题:输出矩阵时,输出界面不整齐,非标准矩阵形式。利用n t及空格号使界面比较美观。五、用户手册1本程序的运行环境为XP操作系统,执行文件为:shiyan2.exe。2进入演示程序后的界面:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1