#C05L11P01. C05.L11.二维数组综合.引例1.稀疏矩阵.填空题
C05.L11.二维数组综合.引例1.稀疏矩阵.填空题
题目描述
n*m 矩阵大部分元素是 0 的矩阵称为稀疏矩阵,假设有 k 个非 0 元素,则可把稀疏矩阵用 K*3 的矩阵简记之,其中第一列是行号,第二列是列号,第三列是该行、该列下的非元素的值。如:
0 0 0 5
0 2 0 0
0 1 0 0
写简记成:
1 4 5 //第1行第4列有个数是5
2 2 2 //第2行第2列有个数是2
3 2 1 //第3行第2列有个数是1
试编程读入一稀疏矩阵,转换成简记形式,并输出。
输入格式
第一行为 n 和 m , n 为行数, m 为列数( 1 <= n , m <= 100 );
接下来是一个 n*m 的矩阵,矩阵中每个正整数小于 1000 。
输出格式
输出矩阵的简记形式(输出的先后顺序,首先按行、同行的话按列依次递增顺序输出)。
样例
3 5
0 0 0 0 5
0 0 4 0 0
1 0 0 0 1
1 5 5
2 3 4
3 1 1
3 5 1
完成程序
#include<bits/stdc++.h>
using namespace std;
const int N=101;
int n,m,a[N][N];
int main()
{
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
scanf("%d",填空(1));
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
if(填空(2))
printf("%d %d %d\n",填空(3),j,填空(4));
return 0;
}
填空(1):{{ input(1) }}
填空(2):{{ input(2) }}
填空(3):{{ input(3) }}
填空(4):{{ input(4) }}
相关
在以下作业中: