求任意大小矩阵的转置矩阵
m 行 n 列矩阵转置后为 n 行 m 列。
C++代码如下:
1 #include<iostream> 2 using namespace std; 3 4 int main() { 5 int m, n; //原始矩阵 m行n列 6 cin >> m>>n; 7 int **ptr; //指向指针的指针 8 ptr= new int*[m]; //动态内存生成 m 个元素的数组,存储 m 行矩阵元素 9 for (int i = 0; i < m; i++) { 10 ptr[i] = new int[n]; //每一行再生成 n 个元素,形成 m行n列 11 } 12 13 for (int i = 0; i < m; i++) { 14 for (int j = 0; j < n; j++) { 15 cin >> ptr[i][j]; 16 } 17 } 18 19 int **tr; //转置矩阵 20 tr = new int*[n]; // n 行 21 for (int i = 0; i < n; i++) { 22 tr[i] = new int[m]; // m 列 23 } 24 for (int i = 0; i < m; i++) { // 求转置 25 for (int j = 0; j < n; j++) { 26 tr[j][i] = ptr[i][j]; 27 } 28 } 29 for (int i = 0; i < n; i++) { // 打印转置后的矩阵 30 for (int j = 0; j < m; j++) { 31 cout << tr[i][j]<<' '; 32 } 33 cout << endl; 34 } 35 return 0; 36 }