题解 | #矩阵转置#
矩阵转置
http://www.nowcoder.com/practice/0fe4d131737d4138912c3b5df8569245
#include<cstdio>
#include<iostream>
using namespace std;
const int MAXN = 100 + 10;
struct Matrix {
int row;
int col;
int matrix[MAXN][MAXN];
Matrix() {}
Matrix(int r,int c):row(r),col(c) {}
};
void InputMatrix(Matrix& x) {
for(int i = 0; i < x.row; ++i) {
for(int j = 0; j < x.col; ++j) {
scanf("%d",&x.matrix[i][j]);
}
}
}
void OutputMatrix(Matrix x) {
for(int i = 0; i < x.row; ++i) {
for(int j = 0; j < x.col; ++j) {
printf("%d ",x.matrix[i][j]);
}
printf("\n");
}
}
Matrix Transfer(Matrix x) {
Matrix result = Matrix(x.col,x.row);
for(int i = 0; i < x.row; ++i) {
for(int j = 0; j < x.col; ++j) {
result.matrix[j][i] = x.matrix[i][j]; // 不能写成result.matrix[i][j] = x.matrix[j][i];
}
}
return result;
}
int main() {
int n;
while(scanf("%d",&n) != EOF) {
Matrix x(n,n);
InputMatrix(x);
OutputMatrix(Transfer(x));
}
return 0;
}