Ciao a tutti.
Devo fare un programma con i vector che permetta di moltiplicare due matrici di qualsiasi taglia (dopo aver verificato che la taglia è compatibile per la moltiplicazione).
Questo è il mio programma; compila ma non funziona...
Credo di non aver capito bene come funzionano i vector di vector (i vettori a una dimensione li so usare!).
Ecco il mio programma:
Avrei bisogno di un aiuto, perché ho un test di informatica giovedì... =S.codice:#include<iostream> using std::cout; using std::cin; using std::endl; using std::cerr; #include<vector> using std::vector; // ====================================================================== typedef vector< vector<double> > Matrix; // ====================================================================== Matrix read_Matrix() { int l(0), c(0); double d(0); Matrix M; cout << "Matrix dimension: "; cin >> l >> c; for(int i(0); i < l; i++) { for(int j(0); j < c; j++) { cout << "M_" << i << "_" << j << ": "; cin >> d; M[i][j] = d; } } return M; } // ====================================================================== Matrix multiply_Matrix(const Matrix& M1, const Matrix& M2) { Matrix M; if(M1[0].size() != M2.size()) { cerr << "Error: impossible moltiplication." << endl; return M; } for(int i(0); i < M1[0].size(); i++) { for(int j(0); j < M1.size(); j++) { M[i][j] = M1[j][i] * M2[i][j]; } } return M; } // ====================================================================== void print_Matrix(const Matrix& M) { cout << "Matrix:" << endl; for(int i(0); i < M[0].size(); i++) { for(int j(0); j < M.size(); j++) { cout << M[i][j]; } cout << endl; } } // ====================================================================== int main() { Matrix M1, M2, M; M1 = read_Matrix(); M2 = read_Matrix(); M = multiply_Matrix(M1, M2); print_Matrix(M1); return 0; }
Grazie!
Ps: Non sono ancora in grado di utilizzare gli iteratori e non potrò utilizzarli durante il test.

Rispondi quotando