c++ - 如何在不声明另一个数组的情况下转置二维数组?

标签 c++ arrays multidimensional-array

数组:

1 2 3
4 5 6

我想要的输出:

1 4
2 5
3 6

我的代码:

for (i = 0; i < rows; i++) {
  for (j = 0; j < col; j++) {
    temp = matrix[j][i];
    matrix[j][i] = matrix[i][j];
    matrix[i][j] = temp;
  }
}

for (i = 0; i < col; i++) {
  for (j = 0; j < rows; j++) {
    cout << setw(5) << matrix[i][j];
  }
  cout << endl;
}

其中行数和列数,以及数组的元素是从用户那里获取的。

我得到的输出:

1 2
4 5
3 6

我们将不胜感激。

最佳答案

尝试制作for (j = i; j < col; j++)而不是 for (j = 0; j < col; j++)在你的矩阵循环中,因为你不应该回到已经改变的值。

关于c++ - 如何在不声明另一个数组的情况下转置二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59316633/

相关文章:

c++ - 需要正则表达式来定位名称未知的 C++ 命名空间声明

java - 其余可以 MediaType.MULTIPART_FORM_DATA 与 @Produces 一起使用

arrays - 二维数组邻接算法

c++ - 返回引用实例和非引用实例之间有什么区别(return mystr & vs mystr)?

c++ - 为 apache 编写基于 C++11 线程的模块

c++ - 模板中无限量的泛型类型?

android - 如何使用 GSON 解析多个嵌套的 JSON 对象/数组?

javascript - 如何在 multiArray 中定义值

python - 将数组值与多维数组中的数组值进行匹配

c - C中动态分配的二维( double )数组