0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
6
0
0
0
0
9
0
0
0
0
0
0
0
12
0
#include<iostream>
#include<iomanip>
using
namespace std;
int main()
{
int
number[5][3] = {
{5,
6,
4}, //5表示一共5列,6表示6行,4表示有4个非0元素
{1,
1,
3}, //记录存储的第一个非0元素的行数,列数和对应的值,后面的含义相同
{2,
3, 6},
{3,
2, 9},
{4,
4, 12}
};
int
k; //用来存储非零元素的索引
k
= 1;
cout <<
"稀疏矩阵"
<< endl;
for
(int i = 0; i < 5;i++)
{
for
(int j = 0; j < 3;j++)
{
cout<<setiosflags(ios::left);
cout <<setw(10)<<
number[i][j];
}
cout << endl;
}
cout <<
"还原稀疏矩阵:"
<< endl;
for
(int i = 0; i <
number[0][0];i++) //循环稀疏矩阵的列
{
for
(int j = 0; j <
number[0][1];j++) //循环稀疏矩阵的行
{
if
(k <= number[0][2] && (i == number[k][0]) && (j
==
number[k][1])) //判断是否为非零元素,如果是非零元素则输出非零元素
{
cout << setw(5)
<< number[k][2];
k++;
}
else
cout << setw(5)
<<
0; //输出为0的元素
}
cout << endl;
}
return
0;
}