1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <stdio.h>
#include <stdlib.h>
double Determinant(double coefs[]) { return ((coefs[0] * coefs[3]) - (coefs[2] * coefs[1])); }
unsigned char methode_Cramer(double a, double b, double c, double d, double e, double f, double* X, double* Y) {
double coefs[4] = {a, b, d, e};
double det;
det = Determinant(coefs);
if ((det != 0) && (X != NULL) && (Y != NULL)) {
coefs[0] = c; coefs[1] = b; coefs[2] = f; coefs[3] = e; (*X) = (Determinant(coefs) / det);
coefs[0] = a; coefs[1] = c; coefs[2] = d; coefs[3] = f; (*Y) = (Determinant(coefs) / det);
return 1;
} else {
return 0;
}
}
int main()
{
double a=1.5f, b=3.2f, c=5, d=4.6f, e=2.4f, f=3.1f, X, Y;
if ( methode_Cramer(a, b, c, d, e, f, &X, &Y) ) {
printf("Le systeme :\n|%lfX + %lfY = %lf\n|%lfX + %lfY = %lf\n\nadmet comme solution :\n| X = %lf\n| Y = %lf\n", a, b, c, d, e, f, X, Y);
} else {
printf("Le systeme :\n|%lfX + %lfY = %lf\n|%lfX + %lfY = %lf\n\nn'admet pas de solution\n", a, b, c, d, e, f);
}
return EXIT_SUCCESS;
} |