Вы находитесь на странице: 1из 5

#include <conio.

h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <Windows.h>

float deter(unsigned n, float *T[10])


{
float det,temp,q,max;
unsigned i,j,p,k,c;
det=1;
for (p=1; p<=n-1;p++)
{
k=p;
max=fabs(T[p][p]);
for(c=p+1;c<=n;c++)
if(fabs(T[c][p])>max)
{
max=fabs(T[c][p]);
k=c;
}
if(max==0)
return 0;
if(k!=p)
{
det=-det;
for(j=p;j<=n;j++)
{
temp=T[p][j];
T[p][j]=T[k][j];
T[k][j]=temp;
}
}
for(i=p+1;i<=n;i++)
{
q=T[i][p]/T[p][p];
for(j=p+1;j<=n;j++)
T[i][j]=T[i][j]-q*T[p][j];
}
}
for(i=1;i<=n;i++)
det=det*T[i][i];
return det;
}

void main()
{
clrscr();
float *A[5],*Temp[5],d,temp,B[5],X[5];
int n,i,j;
printf("Vvedite razmer matrici ");
scanf("%d",&n);
printf("Zapolnite matricu: \n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("A[%d][%d]= ",i,j);
scanf("%f",&temp);
A[i][j]=temp;
}
printf("B[%d]= ",i);
scanf("%f",&B[i]);
}

d=deter(n,A);
if (d==0)
printf("Metod Kramera nelizia primeniti.");
else
{
for (i=1;i<=n;i++)
{
// Temp=*A;
for (int l=1;l<=n;l++)
for (j=1;j<=n;j++)
Temp[l][j]=A[l][j];
for (j=1;j<=n;j++)
Temp[j][i]=B[i];
X[i]=deter(n,Temp)/d;
}
}
//printf("Determinant %6.2f",d);
printf("Rezulitat: \n");
for (i=1;i<=n;i++)
printf("X[%d]=%6.2f\n",i,X[i]);
getch();
}
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <Windows.h>

float T[5][5];

float deter(unsigned n) //, float *T[10])


{
float det,temp,q,max;
unsigned i,j,p,k,c;
det=1;
for (p=1; p<=n-1;p++)
{
k=p;
max=fabs(T[p][p]);
for(c=p+1;c<=n;c++)
if(fabs(T[c][p])>max)
{
max=fabs(T[c][p]);
k=c;
}
if(max==0)
return 0;
if(k!=p)
{
det=-det;
for(j=p;j<=n;j++)
{
temp=T[p][j];
T[p][j]=T[k][j];
T[k][j]=temp;
}
}
for(i=p+1;i<=n;i++)
{
q=T[i][p]/T[p][p];
for(j=p+1;j<=n;j++)
T[i][j]=T[i][j]-q*T[p][j];
}
}
for(i=1;i<=n;i++)
det=det*T[i][i];
return det;
}

void main()
{
clrscr();
float A[5][5],d,temp,B[5],X[5];
int n,i,j;
printf("Vvedite razmer matrici ");
scanf("%d",&n);
printf("Zapolnite matricu: \n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("A[%d][%d]= ",i,j);
scanf("%f",&temp);
A[i][j]=temp;
T[i][j]=temp;
}
printf("B[%d]= ",i);
scanf("%f",&B[i]);
}
d=deter(n);
if (d==0)
printf("Metod Kramera nelizia primeniti.");
else
{
for (i=1;i<=n;i++)
{
// Temp=*A;
for (int l=1;l<=n;l++)
for (j=1;j<=n;j++)
T[l][j]=A[l][j];
for (j=1;j<=n;j++)
T[j][i]=B[j];
X[i]=deter(n)/d;
}
}
//printf("Determinant %6.2f",d);
printf("Rezulitat: \n");
for (i=1;i<=n;i++)
printf("X[%d]=%6.2f\n",i,X[i]);
getch();
}