nyoj 29-求转置矩阵问题 (行,列位置调换)

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
 
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 }
原文地址:https://www.cnblogs.com/GetcharZp/p/9068381.html