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