Solución de la ecuación cuadrática con raíces reales o complejas.
More...
#include <stdio.h>
#include <math.h>
Go to the source code of this file.
|
| int | main (int argc, char *argv[]) |
| | Punto de entrada. Calcula y muestra raíces (reales o complejas).
|
Solución de la ecuación cuadrática con raíces reales o complejas.
Resuelve: a x^2 + b x + c = 0 usando el discriminante: Δ = b^2 - 4ac
Casos:
- Δ > 0: dos raíces reales distintas
- Δ = 0: una raíz real doble
- Δ < 0: dos raíces complejas conjugadas
Para Δ < 0: sqrt(Δ) = i*sqrt(-Δ) y las raíces se expresan como: x = (-b ± i*sqrt(-Δ)) / (2a)
- Entrada
- Tres valores float, leídos por consola (a, b, c).
- Salida
- Imprime las dos raíces en forma: x = real + imag*i
- Warning
- Si a = 0 la ecuación no es cuadrática; este programa divide entre (2a).
- Complejidad
- Tiempo: O(1). Memoria: O(1).
Definition in file Ejemplo005.c.
◆ main()
| int main |
( |
int | argc, |
|
|
char * | argv[] ) |
Punto de entrada. Calcula y muestra raíces (reales o complejas).
- Parameters
-
| argc | No usado. |
| argv | No usado. |
- Returns
- 0 si finaliza correctamente.
Definition at line 44 of file Ejemplo005.c.
45{
46 (void)argc;
47 (void)argv;
48
49 float a, b, c;
50 float r;
51 float x1r, x1i, x2r, x2i;
52
53 printf("Ingrese el termino cuadratico: ");
54 scanf("%f", &a);
55
56 printf("Ingrese el termino lineal: ");
57 scanf("%f", &b);
58
59 printf("Ingrese el termino independiente: ");
60 scanf("%f", &c);
61
62
63 r = b*b - 4*a*c;
64
65
66
67
68
69
70
71
72
73
74 x1r = (-b + (r >= 0 ? sqrt(r) : 0)) / (2*a);
75 x1i = (r >= 0 ? 0 : sqrt(-r) / (2*a));
76
77 x2r = (-b - (r >= 0 ? sqrt(r) : 0)) / (2*a);
78 x2i = (r >= 0 ? 0 : -x1i);
79
80 printf("x1 = %.4f%+.4fi\n", x1r, x1i);
81 printf("x2 = %.4f%+.4fi\n", x2r, x2i);
82
83 return 0;
84}