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;
}