【问题标题】:How do I take transpose of a 2D array without declaring another array?如何在不声明另一个数组的情况下对二维数组进行转置?
【发布时间】:2019-12-13 05:29:56
【问题描述】:

数组:

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

我们将不胜感激。

【问题讨论】:

    标签: c++ arrays multidimensional-array


    【解决方案1】:

    尝试在您的矩阵循环中使用for (j = i; j &lt; col; j++) 而不是for (j = 0; j &lt; col; j++),因为您不应该返回已经更改的值。

    【讨论】:

    • 在输入第 1 行 = 1 2、第 2 行 = 3 4 和第 3 行 = 5 6 时。此解决方案在转置矩阵的最后一列中给出垃圾。
    • @M.M.你用的是数组还是向量?
    • 我正在使用数组
    猜你喜欢
    • 2018-03-26
    • 1970-01-01
    • 2022-01-15
    • 2010-12-21
    • 2016-12-27
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多