/* matrix2.cpp Multiplication of matrixes. Dynamic arrays, automatic check of index. (C) R.N.Shakirov, IMach of RAS(UB), 1998 - 2000 All Rights Reserved. */ #include <fstream.h> #include "exarray.h" int main (int argc, char **argv) { if (argc < 3) return 1; typedef exarray<int> vector; exarray <vector> m1,m2,m3; int i,j,k,dim = 0; // Input ifstream fin (argv [1]); if (!fin) return 1; fin >> dim; for (i = 0; i < dim; i++) for (j = 0; j < dim; j++) fin >> m1 [i] [j]; for (i = 0; i < dim; i++) for (j = 0; j < dim; j++) fin >> m2 [i] [j]; // Multiplication for (i = 0; i < dim; i++) for (j = 0; j < dim; j++) { int sum = 0; for (k = 0; k < dim; k++) sum += m1 [i] [k] * m2 [k] [j]; m3 [i] [j] = sum; } // Output ofstream fout (argv [2]); if (!fout) return 1; for (i = 0; i < dim; i++) { for (j = 0; j < dim; j++) { fout.width (6); fout << m3 [i] [j]; } fout << '\n'; } return 0; }