📄 5_2.cpp
字号:
#include<stdio.h>
#define M 4
#define N 5
void TriArr(int a[][N],int b[][3])
{ int i,j,k=0;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if(a[i][j]!=0)
{ k++; //k表示非零元素个数
b[k][0]=i; //行号
b[k][1]=j; //列号
b[k][2]=a[i][j]; //元素值
}
b[0][0]=M; b[0][1]=N; b[0][2]=k; //M行N列的稀疏矩阵中,共有k个非零元素
}
void main()
{ int a[][5]={0,3,0,0,0,
0,0,0,0,0,
1,4,0,0,0,
0,0,0,0,7};
int i,j,b[10][3];
TriArr(a,b);
printf("原稀疏矩阵为:\n");
for(i=0;i<M;i++) //输出原稀疏矩阵
{
for(j=0;j<N;j++)
printf("%3d",a[i][j]);
printf("\n");
}
printf("压缩后的稀疏矩阵:\n");
for(i=0;i<=b[0][2];i++) //输出压缩后的稀疏矩阵
{ for(j=0;j<3;j++) printf("%3d",b[i][j]);
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -