#include<iostream>
#include <iomanip>
using namespace std;
class Matrix
{
private:
int x,y,i,j;
int a[10][10],b[10][10];
public:
Matrix(int a,int b)
{
x=a;
y=b;
}
void ReadMatrix();//输入二维矩阵
void WriteMatrix();//输出二维矩阵
void Transpose(Matrix&);//将当前对象矩阵转置为一个n行m列的B矩阵
};
void::Matrix::ReadMatrix()
{
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
cin>>a[i][j];
}
}
void::Matrix::WriteMatrix()
{
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
cout<<setw(5)<<a[i][j];
}
cout<<endl; //此处的换行符不要忘记
}
}
void::Matrix::Transpose(Matrix&B)
{
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
B.b[j][i]=B.a[i][j];
}
} //细节就在这里,直接a[j][i]=a[i][j]会少掉好多元素
for(i=0;i<y;i++)
{
for(j=0;j<x;j++)
{
B.a[i][j]=B.b[i][j];
}
}
int temp; //交换行列
temp = x;
x = y;
y = temp;
}
int main ()
{
int x,y;
cin>>x>>y;
Matrix s(x,y);
s.ReadMatrix();
s.WriteMatrix();
s.Transpose(s);
s.WriteMatrix();
return 0;
}