【题目链接】
【题目考点】
1. 二维数组遍历
【题解代码】
解法1:设二维数组
设二维数组,输入二维数组,遍历二维数组,遇到不是0的元素,输出简记形式
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, m, a[105][105] = {};//数组a初始化为0
cin >> n >> m;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
cin >> a[i][j];
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
{
if(a[i][j] > 0)
cout << i << ' ' << j << ' ' << a[i][j] << endl;
}
return 0;
}
解法2:不设二维数组
在输入的过程中,如果输入的值大于0,那么直接输出简记形式
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, m, a;
cin >> n >> m;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
{
cin >> a;
if(a > 0)
cout << i << ' ' << j << ' ' << a << endl;
}
return 0;
}
该博客介绍了如何处理稀疏矩阵,提供了两种不同的实现方法。解法一是先初始化二维数组,然后遍历并输出非零元素;解法二则是在输入过程中直接输出非零值,避免了不必要的内存占用。这两种方法都适用于处理大量零元素的矩阵问题。
707

被折叠的 条评论
为什么被折叠?



