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 38 39 40 41 42 43 44 45 46 47 48 49 |
// 2x09: Ecuación de segundo grado /* Escribe un programa que resuelva ecuaciones de segundo grado, pidiendo interactivamente los coeficientes. Se deben dar soluciones complejas si no hay solución en el dominio de los reales. */ #include <stdio.h> //Librería para cálculos matemáticos complejos: #include <math.h> main(){ system("clear"); float a, b, c, discr, resRaiz; printf( "\v\tIntroduzca el valor de A, B y C:\n" ); printf("\t A = "); do{ scanf( "%g", &a ); }while(a==0); //A no puede ser 0 printf("\t B = "); scanf( "%g", &b ); printf("\t C = "); scanf( "%g", &c ); discr = b*b-4*a*c; //printf("discr=%g\n",discr); // Si la raiz es positiva o cero se calcula con normalidad: if( discr > 0 || discr == 0 ){ resRaiz = sqrt(discr); printf( "\n\tLas solucciones de la ecuacion son:\n\t\tRespuesta uno: %g\n\t\tRespuesta dos: %g\n\v\v", (-b+resRaiz)/(2*a), (-b-resRaiz)/(2*a) ); } else if( discr < 0 ){ // Si es negativa se calcula el numero compleno (numero entero + numero imaginario) resRaiz = sqrt(discr*-1); printf( "\n\tLas solucciones de la ecuacion son:\n\t\tRespuesta uno: %g+%gi\n\t\tRespuesta dos: %g-%gi\n\v\v", -b/(2*a), resRaiz/(2*a), -b/(2*a), resRaiz/(2*a) ); }; }; |