问题 1751: 矩阵转置
题目链接:https://www.dotcpp.com/oj/problem1751.html
题目描述
输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。
输入
输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数。
接下来的N行每行有N个整数,分别代表矩阵的元素。
输出
可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。
样例输入
1 68 3 1 70 25 79 59 63 65 6 46
样例输出
68 1 79 65 70 59 6 25 63 46
1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 #include <string> 5 #include <cstring> 6 #include <map> 7 #include <cstdio> 8 using namespace std; 9 int a[105][105]; 10 int n,tmp; 11 int main() 12 { 13 while(cin>>n){ 14 for(int i=0;i<n;i++){ 15 for(int j=0;j<n;j++){ 16 cin>>a[i][j]; 17 } 18 } 19 for(int i=0;i<n;i++){ 20 for(int j=0;j<i;j++){ 21 tmp=a[i][j]; 22 a[i][j]=a[j][i]; 23 a[j][i]=tmp; 24 } 25 } 26 for(int i=0;i<n;i++){ 27 for(int j=0;j<n;j++){ 28 if(j==0) cout<<a[i][j]; 29 else cout<<" "<<a[i][j]; 30 } 31 cout<<endl; 32 } 33 } 34 return 0; 35 }