C++ 多维数组的转置

输入一个n*m大小的矩阵,将其行列互换,第1行换成第1列,第2行换成第2列,依此类推。

1 <= n, m <= 100

输入描述:

第一行两个整数n,m

接下来n行,每行m个整数

输出描述:

m行,每行n个整数,表示互换之后的矩阵。

自解答案:

#include <bits/stdc++.h>
using namespace std; 
 
int main() {
    // 请补全代码,实现题目功能
    int n,m;
    cin >> n >> m;
    int a[n][m];
    int b[m][n];
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++){
             cin >> a[i][j];     
        }
        
        
    }
 
    for (int j = 0; j < m; j++)
    {
        for (int i = 0; i < n; i++){
             b[j][i] = a[i][j];
             cout << b[j][i] <<” “;
        } 
        cout <<” “<< endl;
        
        
    }
    
 
 
    return 0;
}

标准答案:

#include <iostream>
using namespace std;
 
int main() {
    int n, m;
    cin >> n >> m;
    int nums[m][n];
    
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            cin >> nums[j][i];
    
    for (int i=0; i<m; i++) {
        for (int j=0; j<n; j++)
            cout << nums[i][j] << ” “;
        cout << endl;
    }
    return 0;
}

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?