/*
 * 08-ecuacion.c
 *
 * Escriba un programa que calcule las soluciones reales de una
 * ecuación de segundo grado; para ello debe tener en cuenta
 * que el discriminante debe ser no negativo, pues las raíces
 * cuadradas de los números negativos no tienen solución en
 * el campo de os números reales.  La expresión que permmite
 * calcular el valor de x para a x^2 + b x + c = 0 es:
 *                             ___________
 *                        +   / 2
 *                     -b - \/ b  - 4 a c
 *                 x = --------------------
 *                           2 a
 */

#include <stdio.h>
#include <math.h>


int
main(void)
{
	double a, b, c, x1, x2;
	double discriminante;
	const double epsilon= 1e-5;

	printf("Ingrese el valor de a: ");
	scanf("%lf", &a);
	printf("Ingrese el valor de b: ");
	scanf("%lf", &b);
	printf("Ingrese el valor de c: ");
	scanf("%lf", &c);

	discriminante= b * b - 4 * a * c;

	if (fabs(discriminante) < epsilon ) { /* es cero como numero real */
		x1= - b / (2 * a);
		printf("Dos soluciones reales iguales = %f\n", x1);
	} else if (discriminante < 0.0)
		printf("No existen soluciones reales.\n");
	else {
		x1=  (-b + sqrt(discriminante)) / (2*a);
		x2=  (-b - sqrt(discriminante)) / (2*a);
		printf("Dos soluciones reales distintas= %f y %f\n", x1, x2);
	}
	return 0;
}
