代码如图,题目在最后11111111111111111111111111111111111111111111111111111111111111
#include <iostream>
#include <cstring>
using namespace std;
class CMatrix
{
public:
CMatrix(int m, int n)
:M(m),N(n)
{
p = new int[m*n];
memset(p, 0, m*n * sizeof(int));
}
CMatrix(const CMatrix &other)
{
this->M = other.M;
this->N = other.N;
this->p = new int[M*N];
memset(p, 0, M*N * sizeof(int));
memcpy(p, other.p,M*N*sizeof(int));
}
~CMatrix()
{
delete p;
}
int& ElementAt(int i, int j)
{
return p[i*N + j];
}
CMatrix Rotate()
{
CMatrix m(N,M);
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
m.ElementAt(i, j) = ElementAt(j,i);
}
}
return m;
}
void Display()
{
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
cout << p[i*N + j] <<" ";
}
cout << endl;
}
}
private:
int M;
int N;
int* p;
};
int main()
{
int m = 3, n = 4;
CMatrix A(m,n);
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
{
A.ElementAt(i, j) = i * n + j + 1;
}
}
A.Display();
CMatrix B = A.Rotate();
B.Display();
return 0;
}