//-------- matrix.cpp --------- #pragma hdrstop #include <condefs.h> #include <iostream.h> #include <fstream.h> #include <stdlib.h> #include <conio.h> //--------------------------------------------------------------------------- #pragma argsused void MultiplyMatrix(); int ROWS; int M1[40][40]; int M2[40][40]; int main() { fstream fin("matrix.txt", ios::in); char input; fin.get(input); ROWS = 0; while(input != '\n') { ROWS++; fin.get(input); } fin.seekg(0); fin.get(input); for(int Row=0; !fin.eof(); Row++) { for(int Col=0; !fin.eof(); Col++) { M1[Row][Col] = atoi(&input); M2[Row][Col] = atoi(&input); //cout << input << " "; fin.get(input); if(input=='\n') break; } cout << endl; fin.get(input); } int power; cout << "Raise matrix to what power? "; cin >> power; for(int i=1; i<power; i++) MultiplyMatrix(); for(int i=0; i<ROWS; i++) //ouput matrix to screen { for(int j=0; j<ROWS; j++) { cout << M2[i][j] << " "; } cout << endl; } getch(); return 0; } void MultiplyMatrix() { int C[40][40]; for(int i= 0; i <ROWS; i++) { for(int j = 0; j < ROWS; j++) { C[i][j] = 0; for(int k = 0; k < ROWS; k++) C[i][j] = C[i][j] + M1[i][k] * M2[k][j]; //Mulitiply M1 & M2 } } //Copy C matrix to M2 for(int i=0; i<ROWS; i++) { for(int j=0; j<ROWS; j++) M2[i][j] = C[i][j]; } }