Witam serdecznie :) napomnę że jestem mocno początkujący więc poniższy kod będzie rażący dla większości zwłaszcza że jest dopiero na początku pisania.

Chciałem zrobić pojedyncza funkcję mogącą liczyć wszystkie wyznaczniki do równania z trzema niewiadomymi. Otrzymywany wyznacznik miał zależeć od kolejności wprowadzanych danych do funkcji. Tylko właśnie nie do końca wiem jak by to miało działać(mam zamysł ale mam problem z przemyśleniem tego do końca) czy dobra duszyczka mogła by rzucić okiem na zarys pomysłu i dorzucić jakiś mały worek myśli? Z góry serdecznie dziękuję i pozdrawiam wszystkich :).
ps:kod naprawdę w powijakach dopiero.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long double a[4][3],w,wx,wy,wz;
/*
a       b      c      d
a00x + a01y + a02z = a03
a10x + a11y + a12z = a13
a20x + a21y + a22z = a23
*/


void wczytaj() /*funkcja wczytujaca dane do tablicy a o rozmarze 4x3*/
{
    int i=0;
    for(i;i<=3;i++)
    {
        printf("podaj wartość funkcji: \n");
        scanf("%lfx %lfy %lfz =%lf" ,&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
    }
}

double macierz(double wartosci_kolumny1[][] ,double wartosci_kolumny2[][] ,double wartosci_kolumny3[][])
{   double wartosc_zwracana=0;
    /*
        wk_1 wk_2 wk_3
        wk_1 wk_2 wk_3
        wk_1 wk_2 wk_3

		na jakiej zasadzie dziala zostawianie postej komurki we wprowadzaniu danych do funkcji a jak gdy wpiszemy wartosc czy dobrze to rozumiem*/

    *wartosc_zwracana+=(&wartosci_kolumny1[0]*&wartosci_kolumny2[1]*&wartosci_kolumny3[2]);
    *wartosc_zwracana+=(&wartosci_kolumny1[1]*&wartosci_kolumny2[2]*&wartosci_kolumny3[0]);
    *wartosc_zwracana+=(&wartosci_kolumny1[2]*&wartosci_kolumny2[0]*&wartosci_kolumny3[1]);
    *wartosc_zwracana-=(&wartosci_kolumny3[0]*&wartosci_kolumny2[1]*&wartosci_kolumny1[2]);
    *wartosc_zwracana-=(&wartosci_kolumny3[1]*&wartosci_kolumny2[2]*&wartosci_kolumny1[0]);
    *wartosc_zwracana-=(&wartosci_kolumny3[2]*&wartosci_kolumny2[0]*&wartosci_kolumny1[1]);

	return wartosc_zwracana;
}

void oblicz_wartosci()
{						
												/*
												a       b      c      d
												a00x + a01y + a02z = a03
												a10x + a11y + a12z = a13
												a20x + a21y + a22z = a23
												*/

												/*z jakich kolumn*/
	*w = macierz(a[][0], a[][1], a[][2]);		/*a b c*/
	*wx = macierz(a[][3], a[][1], a[][2]);		/*d b c*/
	*wy = macierz(a[][0], a[][3], a[][2]);		/*a d c*/
	*wz = macierz(a[][0], a[][3], a[][2]);		/*a b d*/


}

int main()
{
    printf("Hello world!\n");
    return 0;
}