#include class Matrix3 { public: float A[3][3]; }; void PrintMatrix3(Matrix3 M) { int i, j; for (i = 0; i < 3; i=i+1) { for (j = 0; j < 3; j=j+1) cout << M.A[i][j] << "\t"; cout << endl; } } Matrix3 operator*(Matrix3 M1, Matrix3 M2) { Matrix3 r; int i, j, k; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) r.A[i][j] = 0; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) for (k = 0; k < 3; k=k+1) r.A[i][j] = r.A[i][j] + M1.A[i][k]*M2.A[k][j]; return r; } int main(int argc, char *argv[]) { int i, j, z; Matrix3 M1, M2, M3; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) M1.A[i][j] = i + j; PrintMatrix3(M1); cout << endl; for (i = 0; i < 3; i=i+1) for (j = 0; j < 3; j=j+1) M2.A[i][j] = i + j + 1; PrintMatrix3(M2); cout << endl; z = 0; for (i = 0; i < 10000000; i=i+1) { M1.A[0][0] = i; M3 = M1 * M2; z = z + M1.A[0][0]; } cout << z << endl; }