matpress.c

来自「《数据结构》教材源程序,可以让你轻松的根据教材学习数据结构」· C语言 代码 · 共 36 行

C
36
字号
typedef struct {
int  data[100][100];
int  m,n;  /*分别存放稀疏矩阵的行数、列数和非零元素的个数*/
 } matrix;
typedef  int  spmatrix[100][3];
void  compressmatrix(matrix A , spmatrix B) 
 {/*将稀疏矩阵A转换成其三元组表示B*/
    int i, j, k=1;
    for ( i=0; i<A.m; i++)
      for (j=0; j<A.n; j++)
         if (A.data[i][j] !=0)
           {  B[k][0]=i;
              B[k][1]=j;
              B[k][2]=A.data[i][j];
              k++;
            }
     B[0][0]=A.m;
     B[0][1]=A.n;
     B[0][2]=k-1;
}
main()
{ int i,j,m,n;
  matrix A;
  spmatrix B;
  scanf("%d%d",&m,&n);
  A.m=m; A.n=n;
  for ( i=0; i<m; i++)
      for (j=0; j<n; j++)
         scanf("%d",&A.data[i][j]);
  compressmatrix(A,B);
  for ( i=0; i<=B[0][2]; i++)
      { printf("\n");
        for (j=0; j<3; j++)
           printf("%d",B[i][j]);
       }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?