总时间限制:
1000ms
内存限制:
65536kB
描述
输入一个n行m列的矩阵A,输出它的转置AT。
输入
第一行包含两个整数n和m,表示矩阵A的行数和列数。1 <= n <= 100,1 <= m <= 100。
接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。
输出
m行,每行n个整数,为矩阵A的转置。相邻两个整数之间用单个空格隔开。
样例输入
3 3 1 2 3 4 5 6 7 8 9
样例输出
1 4 7 2 5 8 3 6 9
方法 1
#include <iostream>
using namespace std ;
int main() {
int n , m , k ;
int a[105][105] = {} ,b[105][105] = {} ;
int c [105] [105] = {};
cin >> n >> m ;
for (int i = 1 ; i <= n ; i ++ )
{
for (int j = 1 ; j <= m ; j ++)
{
cin >> a[i][j] ;
b[j][i] = a[i][j];
}
}
for ( int i = 1 ; i <= m; i ++ )
{
for (int j = 1 ; j <= n ; j ++)
{
cout << b[i][j] << " " ;
}
cout << endl ;
}
return 0;
}
方法2:
#include <iostream> using namespace std ; int main() { int n , m , k ; int a[105][105] = {} ,b[105][105] = {} ; int c [105] [105] = {}; cin >> n >> m ; for (int i = 1 ; i <= n ; i ++ ) { for (int j = 1 ; j <= m ; j ++) cin >> a[i][j] ; } for ( int i = 1 ; i <= m; i ++ ) { for (int j = 1 ; j <= n ; j ++) { cout << a[j][i] << " " ; } cout << endl ; } return 0; }