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

时间:2012-01-21 09:38:24

标签: 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;
}

2 个答案:

答案 0 :(得分:2)

在这一行:

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

你只使用矩阵元素的列索引(j),所以你写入(按顺序)向量的位置0,1,2,0,1,2(将位置3到5留空)。

尝试

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

答案 1 :(得分:0)

//filling the vector with matrix elements
  for(i=0;i<2;i++) {
    for(j=0;j<3;j++)
      vector.push_back(matrix[i][j]);
  }