如何交换二维数组中的行或列?
Posted
技术标签:
【中文标题】如何交换二维数组中的行或列?【英文标题】:How to swap rows or columns in a two dimensional array? 【发布时间】:2018-10-20 12:59:13 【问题描述】:下面的代码打印出一个二维数组,其中包含用户想要的编号。行和列。问题是我想改变矩阵中每一行的位置。
假设我的输入是
5
和5
,那么它将打印一个二维数组 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];
【讨论】:
以上是关于如何交换二维数组中的行或列?的主要内容,如果未能解决你的问题,请参考以下文章