名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
进度:C/C++语言100题练习计划专栏,目前94/100
Problem Description
输入一个 n n n 行 m m m 列的矩阵 A A A,输出它的转置 A T A^T AT。
Input
第一行包含两个整数 n n n 和 m m m,表示矩阵 A A A 的行数和列数。 1 ≤ n ≤ 100 1 \le n \le 100 1≤n≤100, 1 ≤ m ≤ 100 1 \le m \le 100 1≤m≤100。
接下来 n n n 行,每行 m m m 个整数,表示矩阵 A A A 的元素。相邻两个整数之间用单个空格隔开,每个元素均在 1 ∼ 1000 1 \sim 1000 1∼1000 之间。
Output
n n n 行,每行 m m m 个整数,表示矩阵加法的结果。相邻两个整数之间用单个空格隔开。
Sample Input
3 3
1 2 3
4 5 6
7 8 9
Sample Output
1 4 7
2 5 8
3 6 9
#include
using namespace std;
const int maxn = 101;
int n, m, a[maxn][maxn];
int main()
{
//输入矩阵的行数n和列数m
cin>>n>>m;
//输入矩阵a
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
cin>>a[i][j];
}
}
//输出"转置"后的矩阵a
for(int j = 1; j <= m; j++)
{
for(int i = 1; i <= n; i++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
★关于本题思路及举例:
1、本题思路简述
假设这里有个
n×m
的矩阵 A,然后我们将第 i 行第 j 列的元素变成新矩阵中的第 j 行第 i 列的元素,所得到的新的m×n
矩阵就是我们的转置矩阵。
但是在本题中,根据题意,我们只需要输出这个转置矩阵就可以了,因此并不需要真的转置,只需要先循环 j 再循环 i 输出就可以达到转置的效果了。
2、举例
3 3
1 2 3
4 5 6
7 8 9
1 4 7
2 5 8
3 6 9
--------------------------------
Process exited after 1.423 seconds with return value 0
请按任意键继续. . .
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心