• 大小: 6.82KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 矩阵  

资源简介


设计一个稀疏矩阵运算器。实现两个矩阵相加、相减和相乘等的运算。矩阵的输入输出均按通常的阵列形式

资源截图

代码片段和文件信息

#include
#define maxsize 100
typedef struct
{
 int ij;                //该非零元的行和列
 int v;                  //该非零元的值
}triple;
typedef struct
{
 triple data[maxsize];         //非零元三元组表,data[0]未用
 int rpos[maxsize]; 
 int mnt;                    //矩阵的行数,列数和非零元个数
}tripletable;

void convert()                          //矩阵的转置

{
 int k;
 tripletable AB;
 printf(“输入稀疏矩阵A的行数,列数和非零元个数:“);
 scanf(“%d %d %d“&A.m&A.n&A.t);
 for(k=1;k<=A.t;k++)
 {
  printf(“输入第%d个非0元素的行数,列数和值:“k);
  scanf(“%d %d %d“&A.data[k].i&A.data[k].j&A.data[k].v);
 }
 B.m=A.m;B.n=A.n;B.t=A.t;
 if(B.t)
 {
  int q=1col;
  for(col=1;col<=A.n;++col)
   for(int p=1;p<=A.t;++p)
    if(A.data[p].j==col)
    {
     B.data[q].i=A.data[p].j;
     B.data[q].j=A.data[p].i;
     B.data[q].v=A.data[p].v;
     ++q;
    }
 }
 int shuru[100][100]={0};
 for(k=1;k<=B.t;k++)
 {
  shuru[B.data[k].j][B.data[k].i]=B.data[k].v;
 }
 printf(“输入为:\n“);
 for(k=1;k<=B.m;k++)
 {
  for(in

评论

共有 条评论