- 博客主页:算法歌者
- 本篇专栏:[刷题]
- 您的支持,是我的创作动力。
文章目录
- 1、题目
- 2、基础
- 3、思路
- 4、结果
1、题目
链接:洛谷-B2106-矩阵转置
2、基础
此题目主要考察二维数组的掌控能力。
3、思路
观察,可知:
- 输入中,矩阵是打印每行,在打印每行的时候,行保持不变,列在变化。
- 转置后,矩阵是打印每列,在打印每列的时候,列保持不变,行在变化。
于是,题目这样解:
#include <iostream>
using namespace std;
const int N = 110;
int arr[N][N];
int n, m;
int main()
{
cin >> n >> m;
// 矩阵:在每行中,行不变,列变化。
// i控制打印行,
for (int i = 0; i < n; i++)
{
// j控制打印列
for (int j = 0; j < m; j++)
{
cin >> arr[i][j];
}
}
// 转置:在每列中,列不变,行变化。
// i控制打印列
for (int i = 0; i < m; i++)
{
// j控制打印行
for (int j = 0; j < n; j++)
{
cout << arr[j][i] << " ";
}
cout << endl;
}
return 0;
}
4、结果
完。