Witam, napisałem program mający za zadanie liczyć macierz odwrotną do podanej przez użytkownika. Robić ma to metodą dopełnień algebraicznych. Niestety, nie bardzo to robi, doszedłem do tego, że program wykłada się przy próbie wyliczenia odpowiednich macierzy dopełnień. Proszę o pomoc w znalezieniu błędu lub naprowadzeniu mnie, co jest źle.

int minor(int wiersze, int kolumny, int size, float matrix[][10], float minor[][10])
{
	int kolumna =0, wiersz =0;
	int i, j;
	
	for (i=0; i < size; i++)
	{
		if (i != wiersze)
		{
			kolumna = 0;
			for (j=0; j< size; j++)
			{
				if( j != kolumny)
				{
					minor[wiersz][kolumna] = matrix [i][j];
					kolumna++;
				}
			}
			wiersz++;
		}
	}
	wypisz_macierz(wiersz, kolumna, minor);
	return 0;
}

void odwrotna(float matrix[][10], int wiersze, int kolumny, int size)
{
	int i, j;
	float det = 1.0/wyznacznik(wiersze, kolumny, matrix);
	float pom[10][10];
	for (i=0; i< size; i++)
	{
		for (j=0; j < size; j++)
		{
			minor(i, j, size, matrix, pom);
			matrix[i][j] = det*wyznacznik(wiersze-1, kolumny-1, pom);
			if ((i+j)%2 == 1)
			matrix[i][j] = -matrix[i][j];
		}
	}
	wypisz_macierz(wiersze, kolumny, matrix);
}
 

Funkcja wyznacznik działa poprawnie, ale w razie potrzeby mogę zarzucić kodem.