【问题标题】: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 行中的元素交换。
  • 您是真的想交换行还是仅仅向后打印?
  • 交换和打印似乎是一回事。因为结果是一个。但我认为交换将是一个更好的选择。如果是,那么我如何访问这些行来交换它们?
  • 不,他们不是。交换比仅以相反的顺序打印要多一些工作。
  • 我的意思是上面代码中的答案

标签: c++ arrays visual-c++ multidimensional-array


【解决方案1】:

这里做这个

For(i=0,j=4;i<5;i++,j--)
{
      For(k=0;k<5;k++)
      {
            Arr2[j][k]=arr1[i][k];
      }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-20
    • 2020-11-29
    • 2020-09-06
    • 1970-01-01
    • 2020-03-30
    • 2013-09-14
    • 2021-03-29
    • 1970-01-01
    相关资源
    最近更新 更多