📄 5_1.cpp
字号:
#include<stdio.h>
#define M 9
#define N 7
#define MAX 30
int data[M][N]=
{
{5,0,0,0,0,0,0},
{0,0,3,0,0,0,0},
{0,0,0,6,0,0,0},
{0,0,0,0,0,0,0},
{0,9,0,0,0,0,0},
{0,0,0,8,0,0,0},
{0,0,0,0,0,1,0},
{0,0,0,0,6,0,0},
};
int i,j;
int count=0;
int index=1;
struct node
{
int row,col; // 非零元的行下标和列下标
int value; // 非零元值
};
typedef struct node NODE;
NODE max[MAX],b[MAX],a[MAX];
/*统计稀疏数组有效元素个数*/
void stastic()
{
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if(data[i][j]!=0)
count++;
}
/*初始化max[0]数据*/
void initmax()
{
max[0].row=6;
max[0].col=6;
max[0].value=count;
}
/*输入三元组数据*/
void input_CompressData()
{
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if(data[i][j]!=0)
{ max[index].row=i;
max[index].col=j;
max[index].value=data[i][j];
index++;
}
}
/*打印稀疏数组数据内容*/
void print_data()
{
printf("稀疏数组数据内容:\n\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
printf("%d ",data[i][j]);
if((j+1)%N==0)
printf("\n");
}
}
/*打印压缩数组数据内容*/
void print_CompressData()
{
printf("\n压缩数组数据内容:\n");
for(i=0;i<=count+1;i++)
printf("%d %d %d %d\n",i,max[i].row,max[i].col,max[i].value);
}
void main()
{
initmax();
input_CompressData();
stastic();
print_data();
print_CompressData();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -