# C++ 多维数组的转置

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/21510.html | 发布：2023-06-25 | 更新：2023-06-25 | 分类：建站教程

输入一个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;  
}

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
