矩阵A(float型),其尺寸为mxn,建立其对应的三元组存储,并通过三元组打印输出矩阵A"/>
给定一个稀疏矩阵A(float型),其尺寸为mxn,建立其对应的三元组存储,并通过三元组打印输出矩阵A
题目:给定一个稀疏矩阵A(float型),其尺寸为mxn,建立其对应的三元组存储,并通过三元组打印输出矩阵A。
思路:扫描矩阵A,将矩阵A中非零元素的个数、非零元素的值、以及非零元素在原数组中的位置,存到建立的三元组B中。
建立三元组B
/*建立三元组B*/
void createtrimat(float A[][maxSize], int m, int n, float B[][3]){int k=1;for(int i=0;i<m;++i)for(int j=0;j<n;++j)if(A[i][j]!=0){B[k][0]=A[i][j];B[k][1]=i;B[k][2]=j;++k;}B[0][0]=k-1;B[0][1]=m;B[0][2]=n;
}
通过三元组打印矩阵A
/*通过三元组打印矩阵A*/
void print(float B[][3]){int k;for(int i=0;i<B[0][1];++i){for(int j=0;j<B[0][2];++j){if(i==(int)B[k][1] && j==(int)B[k][2]){cout<<B[k][0]<<" ";++k;}elsecout<<"0 ";}cout<<endl;}
}
在某函数体中的调用
/*在某函数体中的调用*/
{…createtrimat(A,5,4,B); //A为5x4的矩阵print(B);…
}
更多推荐
给定一个稀疏矩阵A(float型),其尺寸为mxn,建立其对应的三元组存储,并通过三元组打印输出矩阵A
发布评论