2012-01-21 23 views
1
#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

在這一行:

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

你只使用列索引( j)的矩陣元素,所以你寫入(按順序)位置0,1,2,0,1,2(矢量的位置3到5爲空)。

嘗試

vector[i*3 + j]=matrix[i][j]; 
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]); 
    } 
+0

雖然代碼被理解的,應該始終有一個附帶的說明。這不需要很長時間,但它是預期的。 – peterh