Witam
Otóż mam problem z programem, swego czasu liczyl wyznacznik jednak "przestal dzialac", nie moge znalezc rozwiazania mojego problemu bo za kazdym razem wyznacznik zwraca rowny 0.
//Program liczacy wyznacznik macierzy 4x4
#include <stdio.h>
void wprowadzenie_wartosci(int n, double tab[n][n])
{
int i,j;
printf("Wprowadz macierz 4x4\n");
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf("{%d,%d}\t",i+1,j+1);
scanf("%lf",&tab[i][j]);
}
}
}
void minor(int x, int n, double minor1[n][n], double minor2[n-1][n-1])
{
int i,j;
for(j=0; j<n-1; j++)
{
for(i=0; i<x; i++)
{
minor2[j][i] = minor1[j+1][i];
}
for(i=x+1; i<n; i++)
{
minor2[j][i-1] = minor1[j+1][i];
}
}
}
int potega(int x)
{
if ((x%2)==1) return -1;
else return 1;
}
double wyznacznik(int n, double minor1[n][n])
{
int x;
double det=0,minor2[n-1][n-1];
for (x=0; x<n; x++)
{
minor(x, n, minor1, minor2);
det = det + potega(x) * minor1[0][x] * wyznacznik(n-1,minor2);
}
return det;
}
int main()
{
double tab[4][4];
wprowadzenie_wartosci(4,tab);
printf("\nWartosc wyznacznika wynosi: %.2lf\n",wyznacznik(4,tab));
return 0;
}