/* matrix2'.cpp Multiplication of matrixes. Dynamic arrays, optimized 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.item(i).item (k) * m2.item(k).item(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; }