Program stary jak świat, mimo to mam jakis problem a nie moge znaleźć błędu ;/
#include<stdio.h>
double wyznacznik(double [][3]);
void uklad3(double [][3], double[]);
int main()
{
printf("Podaj uklad rowan postaci: \n");
printf("a00x+a01y+a02z=b0 \n");
printf("a10x+a11y+a12z=b1 \n");
printf("a20x+a21y+a22z=b2 \n");
double a[3][3],b[3];
int i,j;
for (i=0;i<3;i++){
scanf("%lfx%+lfy%+lfz=%lf",&a[i][0],&a[i][1],&a[i][2],&b[i]);
}
printf("\n Podano rownania: \n");
for (j=0;j<3;j++){
printf("%gx%+gy%+gz=%g \n",a[j][0],a[j][1],a[j][2],b[j]);
}
wyznacznik (a);
uklad3(a,b);
return 0;
}
double wyznacznik (double a[][3])
{
double w=0.0;
w+=a[0][0]*a[1][1]*a[2][2];
w+=a[1][0]*a[2][1]*a[0][2];
w+=a[2][0]*a[0][1]*a[1][2];
w-=a[0][2]*a[1][1]*a[2][0];
w-=a[1][2]*a[2][1]*a[0][0];
w-=a[2][2]*a[0][1]*a[1][0];
printf("\n wyznacznik to %g \n",w);
return w;
}
void uklad3(double a [][3], double b[])
{
int i,j;
double w=wyznacznik(a);
if(w==0.0)
{
printf("Układ rownan: \n");
for (i=0;i<3;i++)
printf("%gx%+gy%+gz=%g \n",a[i][0],a[i][1],a[i][2],b[i]);
printf("\n Nie ma jednoznaczego rozwiazania");
return;
}
double t[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
t[i][j]=a[i][j];
for(i=0;i<3;i++)
t[i][1]=b[i];
double wx=wyznacznik(t);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
t[i][j]=a[i][j];
for(i=0;i<3;i++)
t[i][2]=b[i];
double wy=wyznacznik(t);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
t[i][j]=a[i][j];
for(i=0;i<3;i++)
t[i][0]=b[i];
double wz=wyznacznik(t);
if(w==0.0 && wx==0.0 && wy==0.0 && wz==0.0)
{
printf("Układ rownan: \n");
for (i=0;i<3;i++)
printf("%gx%+gy%+gz=%g \n",a[i][0],a[i][1],a[i][2],b[i]);
printf("\n Układ ma nieskonczenie wiele rozwiazan");
return;
}
printf("Układ rownan: \n");
for (i=0;i<3;i++)
printf("%gx%+gy%+gz=%g \n",a[i][0],a[i][1],a[i][2],b[i]);
double x,y,z;
x=wx/w;
y=wy/w;
z=wz/w;
printf("Rozwiazaniem sa liczby x= %g y= %g z= %g ",x,y,z);
return ;
}
Pomozecie ?