29-求转置矩阵问题
内存限制:64MB
时间限制:3000ms
Special Judge: No
accepted:8
submit:18
题目描述:
求一个三行三列的转置矩阵。
输入描述:
第一行一个整数n<20,表示有n组测试数据,下面是n组数据; 每组测试数据是九个整型数(每个数都不大于10000),分别为矩阵的的每项;
输出描述:
每组测试数据的转置矩阵; 请在每组输出之后加一个换行
样例输入:
2 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1
样例输出:
1 4 7 2 5 8 3 6 9 2 5 8 3 6 9 4 7 1
提示:
没有提示哦
分析:
①、求一个矩阵的转置矩阵即就是吧该矩阵的行变成另一个矩阵的列
②、比如如下矩阵为: ==> 转置矩阵为:
A11 A12 A13 A11 A21 A31
A21 A22 A23 A12 A22 A32
A31 A32 A33 A13 A23 A33
A21 A22 A23 A12 A22 A32
A31 A32 A33 A13 A23 A33
C/C++代码实现(AC):
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <map> 8 #include <queue> 9 10 using namespace std; 11 const int MAXN = 4; 12 13 int main() 14 { 15 int t, A[MAXN][MAXN]; 16 scanf("%d", &t); 17 18 while(t --) 19 { 20 for(int i = 0; i <= 2; ++ i) 21 for(int j = 0; j <= 2; ++ j) 22 scanf("%d", &A[i][j]); 23 24 for(int i = 0; i <= 2; ++ i) 25 { 26 for(int j = 0; j < 2; ++ j) 27 printf("%d ", A[j][i]); 28 printf("%d ", A[2][i]); 29 } 30 printf(" "); 31 } 32 return 0; 33 }