c++ - 希望我的代码将矩阵元素逐行转换为 vector ,它只显示矩阵的最后一行为 vector

标签 c++

#include<iostream.h>

int main() {
  int i, j, matrix[2][3], vector[6];

  //filling the matrix with element
  for(i=0;i<2;i++)
    for(j=0;j<3;j++)
      cin >> matrix[i][j];
  for(i=0;i<2;i++) {
    for(j=0;j<3;j++)
      cout << matrix[i][j];
    cout << endl;
  }
  //filling the vector with matrix elements
  for(i=0;i<2;i++) {
    for(j=0;j<3;j++)
      vector[j] = matrix[i][j];
  }
  //show the vector
  for(j=0;j<6;j++) {
    cout << vector[j];
  }
  return 0;
}

最佳答案

在这一行中:

vector[j]=matrix[i][j];

您只使用矩阵元素的列索引 (j),因此您(按顺序)写入 vector 的位置 0、1、2、0、1、2(将位置 3 到 5 留空)。

尝试

vector[i*3 + j]=matrix[i][j];

关于c++ - 希望我的代码将矩阵元素逐行转换为 vector ,它只显示矩阵的最后一行为 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961804/

相关文章:

c++ - 为什么我不能用列表初始化来初始化 std::vector

c++ - 需要在C++中执行 "ps -ef | grep amq | awk ' {print $(NF-1) }' "命令

c++ - 如何定义指向 constexpr 变量的指针?

c++ - 如何在库项目中添加头文件和 cpp 文件

c++ - 用codelite编译。 'make' 无法识别

c++ - 在 CLION 中使用 MSYS2 安装的库

c++ - 如何根据另一个包含 0 或 1 个元素的 vector 有条件地否定 AVX2 int16_t vector ?

c++ - 确定已编译二进制文件的长度

c++ - "array[n] != '\0'"比 "n < strlen(array)"好吗?

c++ - SDL_mixer 没有声音