题解 | 矩阵转置

矩阵转置

https://www.nowcoder.com/practice/351b3d03e410496ab5a407b7ca3fd841

#include <iostream>
using namespace std;
const int MAX = 11;
//矩阵转置temp=a[i][j],a[i][j] = a[j][i]; a[j ][ i] = temp; 
int main() {
    int a[MAX][MAX] = {0};
    int n, m;
    cin >> n >>m;
    for (int i = 0; i< n; i++) {
        for (int j = 0; j < m ; j++){
            cin >> a[i][j];
        }
    }//存数据
    //进行矩阵的转置,n <= m只需对下三角进行转置
    if ( n <= m)
    for (int i = 0; i < n ; i++) {
        for (int j = i + 1  ; j <m ;j++){
            int temp = a[i][j];
            a[i][j] = a[j][i];
            a[j][i] = temp;
        }
    }
    // n > m, 对上三角进行转置
	else {
		for (int i = 0; i < n ; i++) {
        for (int j = 0 ; j < i ;j++){
            int temp = a[i][j];
            a[i][j] = a[j][i];
            a[j][i] = temp;
        }
    }
	} 
    for (int i = 0; i < m; i++ ) {
        for (int j = 0; j < n; j++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务