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