题目来源
ZJGSU OJ
描述
输入 n 阶矩阵,输出它的转置矩阵。矩阵的转置操作,即把矩阵的行元素变为列元素、列元素变为行元素的过程。
输入
包含多组测试数据,直到读至输入文件末尾为止。
每组测试数据包括 n+1 行,第一行为一个非负整数 n,代表矩阵的阶数;接下来 n 行是一个 n∗n 的矩阵。
输出
每组测试数据输出 n 行,为转置矩阵,行末无空格。
输入样例 1
2 1 2 1 2 1 1
输出样例 1
1 1 2 2 1
代码
#include<iostream>
using namespace std;
int main() {
int n;
while (cin >> n) {
int** arr = new int* [n];
for (int i = 0;i < n;i++)
arr[i] = new int[n];
for (int i = 0;i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
int temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
for (int i = 0;i < n; i++) {
for (int j = 0; j < n; j++) {
if(j != n-1)
cout << arr[i][j] << " ";
else {
cout << arr[i][j];
}
}
cout << endl;
}
}
}
一开始没注意到输出要求里的行末无空格,墨迹了好久