У меня есть программа,которая находит обратную матрицу(используется метод жордано).Как ее дописать, чтобы при умножении исходной матрицы на обратную получилась единичная??! 
 #include <iostream.h> 
 #include <conio.h> 
 #include <stdio.h> 
 #include <fstream.h> 
 const N=8; 
 const M=16;  void Massiv(int n,float a[N+1][2*N+1]) 
 { 
 int i,j; 
 printf("Њ*ваЁж* A:\n"); 
 for (i=1;i<=n;i++) 
 { 
 for (j=1;j<=n;j++) 
 printf("%4.0f",a[i][j]," "); 
 printf("\n"); 
 } 
 } 
 void Read(float mas[N+1][2*N+1],int &count) 
 { 
 char name[10]; 
 printf("\n‚ўҐ¤ЁвҐ Ё¬п д*©«*:\n"); 
 scanf("%s",&name); 
 ifstream file(name); 
 file>>count; 
 for(int i=1; i<=count; i++) 
 for (int j=1;j<=count; j++) 
 file>>mas[i][j]; 
 file.close(); 
 for(i=1;i<=count;i++) 
 { 
 for(int j=count+1;j<=2*count;j++) 
 { 
 if (i==j-count) 
 mas[i][j]=1; 
 if (i!=j-count) 
 mas[i][j]=0; 
 } 
 } 
 } 
 void Jordan(float a[N+1][2*N+1],int n) 
 { 
 float s; 
 float t[N+1][N+1]; 
 int i,j,k; 
 for (k=1;k<=n;k++) 
 { 
 for (i=1;i<=k-1;i++) 
 { 
 t[i][k]=a[i][k]/a[k][k]; 
 a[i][k]=0; 
 for (j=k+1;j<=2*N;j++) 
 a[i][j]=a[i][j]-t[i][k]*a[k][j]; 
 } 
 for (i=k+1;i<=n;i++) 
 { 
 t[i][k]=a[i][k]/a[k][k]; 
 a[i][k]=0; 
 for (j=k+1;j<=2*N;j++) 
 a[i][j]=a[i][j]-t[i][k]*a[k][j]; 
 } 
 } 
 for (i=1;i<=n;i++) 
 for (j=1;j<=2*n;j++) 
 a[i][j]=a[i][j]/a[i][i]; 
 printf("ЋЎа*в**п ¬*ваЁж*:\n"); 
 for (i=1;i<=n;i++) 
 { 
 for (j=n+1;j<=2*n;j++) 
 printf("%4.0f",a[i][j]," "); 
 printf("\n"); 
 } 
 } 
 void main() 
 { 
 float a[N+1][2*N+1]; 
 int n,k; 
 float s=0; 
 clrscr(); 
 Read(a,n); 
 Massiv(n,a); 
 Jordan(a,n); 
 getch(); 
 return; 
 } 
 Файл содержит: 
 8 
 1 1 1 1 1 1 1 1 
 1 2 1 1 1 1 1 1 
 1 1 2 1 1 1 1 1 
 1 1 1 2 1 1 1 1 
 1 1 1 1 2 1 1 1 
 1 1 1 1 1 2 1 1 
 1 1 1 1 1 1 2 1 
 1 1 1 1 1 1 1 2 
 10 
 9 
 9 
 9 
 9 
 9 
 9 
 9