Вот она программа
Код
#include <stdio.h>
#include <conio.h>
#define Nmax 15
int N,g,k,l,o,p,z;
float x;
float rb [ Nmax ][ Nmax ];
float vektor [ Nmax ];
float X [ Nmax ];
float matrica [ Nmax ][ Nmax ];
void input_B(void);
void input_A(void);
void invmat (void);
void umnozhenie(void);
/*--------------------------------------------------------*/
main()
{
input_A();
input_B();
invmat();
umnozhenie();
(void)getch();
}
/*----------------------------------------------------------*/
void input_A(void)
{
int i;
clrscr();
printf (" программа для решения системы линейных уравнений скачана с сайта www.3ltt.ru");
do
{
gotoxy(30,10);
clreol();
printf ("число уравнений не больше (%d) ", Nmax);
scanf(" %d",&N);
if (N<1 || N>Nmax)
{
gotoxy(30,12);
printf ("ошибка введите другое число");
}
}while(N<1 || N>Nmax);
gotoxy(1,12);
clreol();
for(i=0;i<N;i++)
{
for(g=0;g<N;g++)
{
i++; g++;
printf ("введите коэфицент при неизвестном номер (%d)(%d) ",i,g);
i--; g--;
scanf ("%f",&matrica[i][g]);
}
}
}
void input_B(void)
{
int j;
printf("---------------------------------\n");
for(j=0;j<N;j++)
{
j++;
printf ("введите свободный член номер (%d) ",j);
j--;
scanf ("%f",&vektor[j]);
}
}
/*-------------------------------------*/
void invmat(void)
{
int i,j,s,v;
float p[Nmax][Nmax];
for (s=0;s<N;s++)
{ v=s;
for (i=0;i<N;i++)
for(j=0;j<N;j++)
if(i!=s && j!=v)
p[i][j]=(matrica[i][j]*matrica[s][v]-matrica[i][v]*matrica[s][j])/matrica[s][v];
else
if(i!=s)
p[i][v]=matrica[i][v]/matrica[s][v];
else
if (j!=v)
p[s][j]=-matrica[s][j]/matrica[s][v];
p[s][v]=1/matrica[s][v];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
matrica[i][j]=p[i][j];
}
}
/*-------------------------------------*/
void umnozhenie(void)
{
for(k=0;k<N;k++)
{
for(l=0;l<N;l++)
{
rb[k][l]=matrica[k][l]*vektor[l];
}
}
for(z=0;z<N;z++) X[z]=0;
for(o=0;o<N;o++)
{
for(p=0;p<N;p++)
{
X[o]=X[o]+rb[o][p];
}
x=X[o];
o++;
printf ("\nX(%d)=%f",o,x);
o--;
}
}