第14周课后习题
可变大小矩阵
#include<iostream>
using namespace std;
class Matrix
{
public:
Matrix(int r,int c)
{
x=r;
y=c;
}
void input()
{
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
cin>>a[i][j];
}
}
void show()
{
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
cout<<" "<<a[i][j];
}
cout<<endl; //此处的换行符不要忘记
}
}
void transform()
{
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
b[j][i]=a[i][j];
}
} //细节就在这里,直接a[j][i]=a[i][j]会少掉好多元素
for(i=0;i<y;i++)
{
for(j=0;j<x;j++)
{
a[i][j]=b[i][j];
}
}
int temp; //交换行列
temp = x;
x = y;
y = temp;
}
private:
int a[10][10],b[10][10];
int x,y;
int i,j;
};
int main()
{
int r,c;
cin>>r>>c;
Matrix m(r,c); // 初始大小 2行3列
m.input();
cout<<"datas before:"<<endl;
m.show();
m.transform();
cout<<"datas after:"<<endl;
m.show();
}