#include <stdio.h>
long cant=4,fila=0,colum=0,ctt=0;
double a[4][5] =
{
{1, -2, 1, 1, 2},
{3, 0, 2, -2, -8},
{0, 4, -1, -1, 1},
{5, 0, 3, -1, -3},
};
double res[10];
#define abs(x) ((x) > 0 ? (x) : (-x))
long jordan(){/*this do the gauss elimination for solve the equation*/
long FilaMax=0,k=0;
long double maxEl=0,tmp=0,fracc=0;
for (colum=0; colum<cant-1; colum++) {
/* search the maximun colum*/
maxEl
= abs(a
[colum
][colum
]); FilaMax = colum;
for (k=colum+1; k<cant; k++) {
if (abs(a
[k
][colum
]) > maxEl
) { maxEl
= abs(a
[k
][colum
]); FilaMax = k;
}
}
/* change the maximunby the actual row*/
for (k=colum; k<cant+1;k++) {
tmp = a[FilaMax][k];
a[FilaMax][k] = a[colum][k];
a[colum][k] = tmp;
}
/*lower cero's triangular matrix it's done here*/
for (k=colum+1;k<cant; k++) {
fracc = -a[k][colum]/a[colum][colum];
for (fila=colum; fila<cant+1; fila++) {
if (colum==fila) {
a[k][fila] = 0;
}else{
a[k][fila] += fracc * a[colum][fila];
}
}
}
}
printf("%f\n", (float)a
[cant
-1][cant
-1]); if(abs(a
[cant
-1][cant
-1])<0.000001) printf("no solution found\n"); else
}
int main(void) {
// your code goes here
jordan();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgpsb25nIGNhbnQ9NCxmaWxhPTAsY29sdW09MCxjdHQ9MDsKZG91YmxlIGFbNF1bNV0gPSAKewoJezEsIC0yLCAxLCAxLCAyfSwKICAgIHszLCAwLCAyLCAtMiwgLTh9LAogICAgezAsIDQsIC0xLCAtMSwgMX0sCiAgICB7NSwgMCwgMywgLTEsIC0zfSwKfTsKZG91YmxlIHJlc1sxMF07CgojZGVmaW5lIGFicyh4KSAoKHgpID4gMCA/ICh4KSA6ICgteCkpCgpsb25nIGpvcmRhbigpey8qdGhpcyBkbyB0aGUgZ2F1c3MgZWxpbWluYXRpb24gZm9yIHNvbHZlIHRoZSBlcXVhdGlvbiovCglsb25nIEZpbGFNYXg9MCxrPTA7Cglsb25nIGRvdWJsZSBtYXhFbD0wLHRtcD0wLGZyYWNjPTA7Cglmb3IgKGNvbHVtPTA7IGNvbHVtPGNhbnQtMTsgY29sdW0rKykgewoJICAgIC8qIHNlYXJjaCB0aGUgbWF4aW11biBjb2x1bSovCgkgICAgbWF4RWwgPSBhYnMoYVtjb2x1bV1bY29sdW1dKTsKCSAgICBGaWxhTWF4ID0gY29sdW07CgkgICAgZm9yIChrPWNvbHVtKzE7IGs8Y2FudDsgaysrKSB7CgkgICAgICAgIGlmIChhYnMoYVtrXVtjb2x1bV0pID4gbWF4RWwpIHsKCSAgICAgICAgICAgIG1heEVsID0gYWJzKGFba11bY29sdW1dKTsKCSAgICAgICAgICAgIEZpbGFNYXggPSBrOwoJICAgICAgICB9CgkgICAgfQoJICAgIC8qIGNoYW5nZSB0aGUgbWF4aW11bmJ5IHRoZSBhY3R1YWwgcm93Ki8KCSAgICBmb3IgKGs9Y29sdW07IGs8Y2FudCsxO2srKykgewoJICAgICAgICB0bXAgPSBhW0ZpbGFNYXhdW2tdOwoJICAgICAgICBhW0ZpbGFNYXhdW2tdID0gYVtjb2x1bV1ba107CgkgICAgICAgIGFbY29sdW1dW2tdID0gdG1wOwoJICAgIH0KCSAgICAvKmxvd2VyIGNlcm8ncyB0cmlhbmd1bGFyIG1hdHJpeCBpdCdzIGRvbmUgaGVyZSovCgkgICAgZm9yIChrPWNvbHVtKzE7azxjYW50OyBrKyspIHsKCSAgICAgICAgZnJhY2MgPSAtYVtrXVtjb2x1bV0vYVtjb2x1bV1bY29sdW1dOwoJICAgICAgICBmb3IgKGZpbGE9Y29sdW07IGZpbGE8Y2FudCsxOyBmaWxhKyspIHsKCSAgICAgICAgICAgIGlmIChjb2x1bT09ZmlsYSkgewoJICAgICAgICAgICAgICAgIGFba11bZmlsYV0gPSAwOwoJICAgICAgICAgICAgfWVsc2V7CgkgICAgICAgICAgICAgICAgYVtrXVtmaWxhXSArPSBmcmFjYyAqIGFbY29sdW1dW2ZpbGFdOwoJICAgICAgICAgICAgfQoJICAgICAgICB9CgkgICAgIH0gCgl9CgkKCXByaW50ZigiJWZcbiIsIChmbG9hdClhW2NhbnQtMV1bY2FudC0xXSk7CiAgICBpZihhYnMoYVtjYW50LTFdW2NhbnQtMV0pPDAuMDAwMDAxKQoJCXByaW50Zigibm8gc29sdXRpb24gZm91bmRcbiIpOwoJCWVsc2UKCQlwcmludGYoInNvbHV0aW9uIGZvdW5kXG4iKTsKCQp9CgppbnQgbWFpbih2b2lkKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglqb3JkYW4oKTsKCXJldHVybiAwOwp9Cg==