第八周项目四 稀疏矩阵的三元组表示的实现与应用(2)

来源:互联网 发布:suse linux下载 编辑:程序博客网 时间:2024/06/06 08:56
/*文件名称:稀疏矩阵的三元组表示的实现与应用(2)作    者:胡德杰完成日期:2017年11月2号版 本 号:v1.1.23*/#include <stdio.h>#include "tup.h"bool MatAdd(TSMatrix a,TSMatrix b,TSMatrix &c){    int i,j;   ElemType va,vb,vc;   if(a.cols!=b.cols || a.rows!=b.rows)    return false;    c.rows=a.rows;         //c与a b 的行列书相同    c.cols=a.cols;    c.nums=0;    for(i=0;i<M;i++)    for(j=0;j<N;j++)    {        Assign(a,va,i,j);        Assign(b,vb,i,j);        vc=va+vb;        if(vc)            Value(c,vc,i,j);    }    return true;}int main(){    TSMatrix ta,tb,tc;    int A[M][N]=    {        {0,0,1,0,0,0,0},        {0,2,0,0,0,0,0},        {3,0,0,0,0,0,0},        {0,0,0,5,0,0,0},        {0,0,0,0,6,0,0},        {0,0,0,0,0,7,4}    };    int B[M][N]=    {        {0,0,10,0,0,0,0},        {0,0,0,20,0,0,0},        {0,0,0,0,0,0,0},        {0,0,0,50,0,0,0},        {0,0,20,0,0,0,0},        {0,0,0,10,0,0,4}    };    CreatMat(ta,A);    CreatMat(tb,B);    printf("A:\n");    DispMat(ta);    printf("B:\n");    DispMat(tb);    if(MatAdd(ta, tb, tc))    {        printf("A+B:\n");        DispMat(tc);    }    else    {        printf("相加失败\n");    }    return 0;}

知识点总结:稀疏矩阵的三元组表示的实现与应用。

学习心得:没注意稀疏矩阵的三元组的代码写错了一个地方,导致这个程序出了毛病,调试了好久。

阅读全文
0 0