测试样例是正确的,我自己也再试了别的矩阵,都是对的呀,但不知道为什么后台样例全都Runtime Error
#include <iostream>
using namespace std;
class Matrix
{
private:
int row;
int col;
int** matrix;
public:
Matrix(int crow, int ccol) {
this->row = crow;
this->col = ccol;
matrix = new int* [row];
for (int i = 0; i < row; i++) {
matrix[i] = new int[col];
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
matrix[i][j] = 0;
}
}
}
Matrix(int crow, int ccol, int** arr) {
this->row = crow;
this->col = ccol;
matrix = new int* [row];
for (int i = 0; i < row; i++) {
matrix[i] = new int[col];
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
matrix[i][j] = arr[i][j];
}
}
}
Matrix& transposition() {
int nrow = this->col;
int ncol = this->row;
Matrix temp(nrow, ncol);
for (int i = 0; i < nrow; i++) {
for (int j = 0; j < ncol; j++) {
temp.matrix[i][j] = this->matrix[j][i];
}
}
return temp;
}
void show() {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
int n = 0, m = 0;
cin >> n >> m;
int** arr = new int* [n];
for (int i = 0; i < n; i++) {
arr[i] = new int[m];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
}
}
Matrix mtx(n, m, arr);
Matrix mtx1(m, n);
mtx1 = mtx.transposition();
mtx1.show();
return 0;
}