如何交换二维数组中的行或列?

Posted

技术标签:

【中文标题】如何交换二维数组中的行或列?【英文标题】:How to swap rows or columns in a two dimensional array? 【发布时间】:2018-10-20 12:59:13 【问题描述】:

下面的代码打印出一个二维数组,其中包含用户想要的编号。行和列。问题是我想改变矩阵中每一行的位置。

假设我的输入是55,那么它将打印一个二维数组 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 我希望这个array 变成 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 $代码$

#include <iostream>
#include <time.h>
using namespace std;

int main()

int n, m;
cout << "Enter the number of rows n = "; cin >> n;
cout << "Enter the number of columns m = "; cin >> m;

int **array = new int *[n];
for(int i = 0; i < n; i++)
   array[i] = new int [m];

srand((unsigned int)time(NULL));   

for(int i = 0; i < n; i++)
   for(int j = 0; j < m; j++)
       array[i][j] = i;
       cout << array[i][j] << " ";
     
    cout << '\n';


return 0;

【问题讨论】:

想出一个策略。您想将i 行中的元素与n-1-i 行中的元素交换。 您是真的想交换行还是仅仅向后打印? 交换和打印似乎是一回事。因为结果是一个。但我认为交换将是一个更好的选择。如果是,那么我如何访问这些行来交换它们? 不,他们不是。交换比仅以相反的顺序打印要多一些工作。 我的意思是上面代码中的答案 【参考方案1】:

这里做这个

For(i=0,j=4;i<5;i++,j--)

      For(k=0;k<5;k++)
      
            Arr2[j][k]=arr1[i][k];
      

【讨论】:

以上是关于如何交换二维数组中的行或列?的主要内容,如果未能解决你的问题,请参考以下文章

python 按二维数组的某行或列排序 (numpy lexsort)

VBA Excel 二维数组

matlab中如何计算二维数组大小?

如何在C#中获取多维数组的行/列的长度?

动态创建二维素组

如何在二维数组的每个单元格中找到具有相同数值的行?