第九周项目3-稀疏矩阵的三元组表示的应用
2015-11-06 08:36
393 查看
<p>/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第9周项目3-稀疏矩阵的三元组表示的应用(3.2).cpp 作 者:高露 完成日期:2015年11月6日 版 本 号:v1.0</p><p>问题描述: 采用三元组存储稀疏矩阵,设计两个稀疏矩阵相加的运算算法 输入描述:两个稀疏矩阵 程序输出:相加运算后的结果。 */</p>
#include <stdio.h> #define N 4 #define M 10 int value(int a[],int i,int j) { if (i>=j) return a[(i*(i+1))/2+j]; else return a[(j*(j+1))/2+i]; } void madd(int a[],int b[],int c[] ) { int i,j; for (i=0; i<N; i++) for (j=0; j<N; j++) c[i][j]=value(a,i,j)+value(b,i,j); } void mult(int a[],int b[],int c[] ) { int i,j,k,s; for (i=0; i<N; i++) for (j=0; j<N; j++) { s=0; for (k=0; k<N; k++) s=s+value(a,i,k)*value(b,k,j); c[i][j]=s; } } void disp1(int a[]) { int i,j; for (i=0; i<N; i++) { for (j=0; j<N; j++) printf("%4d",value(a,i,j)); printf("\n"); } } void disp2(int c[] ) { int i,j; for (i=0; i<N; i++) { for (j=0; j<N; j++) printf("%4d",c[i][j]); printf("\n"); } } int main() { int a[M]= {1,2,3,4,5,6,7,8,9,10}; //a表示压缩存储的对称矩阵 int b[M]= {1,1,1,1,1,1,1,1,1,1}; int c1 ,c2 ; madd(a,b,c1); mult(a,b,c2); printf("a矩阵:\n"); disp1(a); printf("b矩阵:\n"); disp1(b); printf("a+b:\n"); disp2(c1); printf("a×b:\n"); disp2(c2); printf("\n"); return 0; }
运行结果:<img src="https://img-blog.csdn.net/20151106083719172?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
学习心得:
稀疏矩阵的相加的应用是我们必须要熟悉掌握的。之间所需要的逻辑思路也要学会、
相关文章推荐
- 集算器辅助SQL编写的应用结构
- 【SSH进阶之路】Hibernate基本原理(一)
- k次方之和
- 第八周 项目1 -建立顺序串的算法库
- QObject的d_ptr成员——箭头符号的重载
- zzuli OJ 1116: 删除元素
- 通过全局对象在Activity之间传递数据
- 第十周项目1二叉树算法库
- 第十周 项目3-5 判断二叉树是否相似
- 如何在 Antergos/Arch Linux 中使用 iPhone
- 有状态无状态回话bean
- EC读书笔记系列之12:条款22、23、24
- 第9章项目4 广义表的算法库及应用(2)
- Table打印 根据高度自动分页
- Spring学习笔记(三)
- CentOS 6.7 FTP安装配置之pure-ftpd
- 第九周项目2-对称矩阵压缩存储的实现与应用(2)
- 第四周项目5-猴子选大王
- 第十周 项目3-4返回二叉链b中data值为x的节点的层数
- 第十周上机实践—项目3—利用二叉遍历思想解决问题