#include int resoudreEquationSecondDegre(double a, double b, double c, double* x1, double* x2) { double delta = b * b - 4.0 * a * c; if (delta < 0.0) { return 0; } else { if (delta == 0.0) { *x1 = -b / (2.0 * a); return 1; } else { *x1 = (-b - sqrt(delta)) / (2.0 * a); *x2 = (-b + sqrt(delta)) / (2.0 * a); return 2; } } } void tester(double a, double b, double c) { double x1; double x2; int nb = resoudreEquationSecondDegre(a, b, c, &x1, &x2); switch (nb) { case 0: { printf("L'equation %.3lfx2%+.3lfx%+.3lf n'a pas de racine reelle\n", a, b, c); } break; case 1: { printf("L'equation %.3lfx2%+.3lfx%+.3lf a une racine reelle : %lf\n", a, b, c, x1); } break; case 2: { printf("L'equation %.3lfx2%+.3lfx%+.3lf a deux racines reelles : %lf et %lf\n", a, b, c, x1, x2); } break; } } int main(void) { tester(2.0, -3.1, 2.1); tester(2.0, 4.0, 2.0); tester(-2.0, 5.0, -2.0); return 0; }