#include <stdio.h> #include <conio.h> #include <malloc.h> #include "func.h"
void main() { int lin; float **A; float d; printf("%s","Razm A="); scanf("%d",&lin); printf("%s\n","Vvedite elementy matricy A"); A=MatInput(lin); d=determinant(A, lin); printf("%f", d); return; }
#include <stdio.h> #include <conio.h> #include <malloc.h> #include <math.h> float **MatInput(int lin) { float**matr; matr=(float**)malloc( (lin)*sizeof(float*)); for(int i=0;i<lin;i++) { matr[i]=(float*)malloc(sizeof(float)*lin); } for(int i=0;i<lin;i++) { for(int j=0;j<lin;j++) { scanf ("%f",&matr[i][j]); } } return matr; } /*float Det(int pd, int *noc) { float res=0; if (pd >2) { for(int i=0; i<noc; i++) { for (j=1; j<i-1 ;j++) k[j]=noc[j]; for(j=i+1;j<pd; j++) k[j-1]=noc[j]; if (j+1)%2=0 res=res-(**matr[lin-pd+1][noc[j]])*(**matr } return Res; } */ float determinant(int **a, int N) { int i,j; int **matr1; /* int sign=1;*/ float determ=0; if (N==2) { determ=a[0][0]*a[1][1]-a[0][1]*a[1][0]; } else { matr1=new int*[N-1]; for(i=0;i<N;i++) { for(j=0;j<N-1;j++) { if(j<i) {matr1[j]=a[j];} else {matr1[j]=a[j+1];} } determ+=/*pow((-1),(i+j))*/determinant(matr1,N-1)*a[i][N-1]; } delete matr1; } return determ; }
|