为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

稀疏矩阵运算器

2017-10-16 14页 doc 30KB 25阅读

用户头像

is_191127

暂无简介

举报
稀疏矩阵运算器稀疏矩阵运算器 #include #include #define Maxterms 50 typedef int ElemType; struct Triple { int row,col; ElemType val; }; struct SMatrix { int m,n,t; Triple sm[Maxterms]; }; void InitMatrix(SMatrix &M); void InputMatrix(SMatrix &M,int m,int n); void Output...
稀疏矩阵运算器
稀疏矩阵运算器 #include #include #define Maxterms 50 typedef int ElemType; struct Triple { int row,col; ElemType val; }; struct SMatrix { int m,n,t; Triple sm[Maxterms]; }; void InitMatrix(SMatrix &M); void InputMatrix(SMatrix &M,int m,int n); void OutputMatrix(SMatrix &M); SMatrix Transpose(SMatrix &M); SMatrix Add(SMatrix &M1,SMatrix &M2); SMatrix ChengFa(SMatrix &M1,SMatrix &M2); //主函数 void main() { int m,n;int ch; cout<<"1.矩阵的转置 2.矩阵的加法运算 3.矩阵的乘法运算"<>ch; if(ch==1) { SMatrix M,N; InitMatrix(M);InitMatrix(N); cout<<"请输入矩阵的行值m和列值n:"<>m>>n; cout<<"请以三元组的形式输入矩阵:"<>m>>n; cout<<"请以三元组的形式输入矩阵:"<>m>>n; cout<<"请以三元组的形式输入矩阵:"<>m>>n; cout<<"请以三元组的形式输入矩阵:"<>m>>n; cout<<"请以三元组的形式输入矩阵:"<>row>>col>>val; while(row!=0) { j ; M.sm[j].row=row; M.sm[j].col=col; M.sm[j].val=val; cin>>row>>col>>val; //结束输入时需要输入三个0来终止输入 } M.t=j; } //矩阵的输出 void OutputMatrix(SMatrix &M) { int j=1; for(int i=1;i<=M.m;i ) { int k; if(i==M.sm[j].row) { int h,s;h=s=0; while(i==M.sm[j].row) { for(k=1;kM.t) break; } int p;p=M.n-M.sm[j-1].col; while(p!=0) { cout<<"0"<<" ";p--; } cout<M1.t)||(k>M2.t)) break; } else if(M1.sm[j].colM1.t) break; } else if(M1.sm[j].col>M2.sm[k].col) { M.sm[h].row=M2.sm[k].row; M.sm[h].col=M2.sm[k].col; M.sm[h].val=M2.sm[k].val; h ;k ; if(k>M2.t) break; } } if((j>M1.t)||(k>M2.t)) break; while(M1.sm[j].rowM1.t) break; } if(j>M1.t) break; while(M1.sm[j].row>M2.sm[k].row) { M.sm[h].row=M2.sm[k].row; M.sm[h].col=M2.sm[k].col; M.sm[h].val=M2.sm[k].val; h ;k ; if(k>M2.t) break; } //if(k>M2.t) break; } if(j>M1.t) while(k<=M2.t) { M.sm[h].row=M2.sm[k].row; M.sm[h].col=M2.sm[k].col; M.sm[h].val=M2.sm[k].val; h ;k ; } if(k>M2.t) while(j<=M1.t) { M.sm[h].row=M1.sm[j].row; M.sm[h].col=M1.sm[j].col; M.sm[h].val=M1.sm[j].val; h ;j ; } M.t=--h; return M; } //矩阵的乘法 SMatrix ChengFa(SMatrix &M1,SMatrix &M2) { SMatrix M,N; InitMatrix(M);InitMatrix(N); if(M1.n!=M2.m) { cout<<"左矩阵的行数和右矩阵的列数不相等,不可做乘法~"<M1.t)||(f>N.t)) break; } else if(M1.sm[g].colM1.t) break; } else if(M1.sm[g].col>N.sm[f].col) { f ; if(f>N.t) break; } } if(s!=0) { M.sm[h].row=i; M.sm[h].col=x; M.sm[h].val=s; h ; } if(f>N.t) break; while(x==N.sm[k].row) { k ; if(k>N.t) break; } if(k>N.t) break; } if(g>M1.t) break; while(i==M1.sm[j].row) j ; } M.t=--h; return M; }
/
本文档为【稀疏矩阵运算器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索