1005.C++动态数组应用-矩阵转置
C/C++ 2022年4月7日
#include <iostream>
using namespace std;
void MatrixTranspose(int **mx, int m, int n);
void printMatrix(int **mx, int m, int n);
int main()
{
int m, n, i, j;
int t;
cout << "Please input m & n: ";
cin >> m >> n;
int **mx;
mx = new int *[m];
for(i=0; i<m; i++)
mx[i] = new int[n];
cout << "Please input matrix: " << endl;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
cin >> *(*(mx+i)+j);
}
printMatrix(mx, m, n);
MatrixTranspose(mx, m, n);
for(i=0; i<m; i++)
delete []mx[i];
delete []mx;
}
void MatrixTranspose(int **mx, int m, int n)
{
int **tmx;
int i, j;
tmx = new int *[n];
for(i=0; i<n; i++)
{
tmx[i] = new int[m];
for(j=0; j<m; j++)
*(*(tmx+i)+j) = *(*(mx+j)+i);
}
printMatrix(tmx, n, m);
for(i=0; i<n; i++)
delete []tmx[i];
delete []tmx;
}
void printMatrix(int **mx, int m, int n)
{
int i, j;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
cout << *(*(mx+i)+j) << ' ';
cout << endl;
}
}