Dev - C++ - Ayuda ecuación cuadrática con raíces imaginarias

 
Vista:

Ayuda ecuación cuadrática con raíces imaginarias

Publicado por Jesus ALirio Guevara (1 intervención) el 20/03/2020 22:27:45
Buenas tengo una duda estoy a programar lenguaje C++ y me encontré con estos ejercicios navegando por internet

resulta que el código solo me bota las raíces reales cuando son imaginarias me bota nan, buscando por internet encontré que sacan las raíces imaginarias pero con senticias if, else, pero no votanban las raices imaginarias solo muestran un mensaje de que las raices son imaginarias. ahora bien tengo el siguiente codigo como puedo modificarlo para que me bote de una las raices imaginarias.

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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main ()
 
{
	float a, b, c, raiz1, raiz2, d, a2;
 
	cout<< "\n raices cuiadratica de a*x*x+b*x+c=0.\n";
 
	cout<<"a="; cin>>a;
 
	cout<<"b="; cin>>b;
 
	cout<<"c="; cin>>c;
 
	cout<<"\n "<<a<<" x*x "<<b<<" x + "<<c<<" = 0. \n\n";
 
	a2 = 2.0*a;
	d = sqrt(b*b-4.0*a*c);
	raiz1 = (-b+d)/a2;
	raiz2 =  (-b-d)/a2;
 
	cout<<"las Raices son:" <<raiz1<< " " <<raiz2<<endl;
 
 
 
	return 0;
}



agradezco su ayuda...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda ecuación cuadrática con raíces imaginarias

Publicado por Andrés (53 intervenciones) el 21/03/2020 05:57:01
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main () {
 
  float a, b, c;
 
  cout<< "\n raices cuiadratica de a*x*x+b*x+c=0.\n";
 
  cout<<"a="; cin>>a;
  cout<<"b="; cin>>b;
  cout<<"c="; cin>>c;
 
  cout<<"\n "<<a<<" x*x "<<b<<" x + "<<c<<" = 0. \n\n";
 
  float discriminante = b * b - 4 * a * c;
 
  int raices_imaginarias = discriminante < 0 ? -1 : 1;
 
  discriminante *= raices_imaginarias;
 
  float raiz_discriminante = sqrt(discriminante);
 
  double raiz_1 = (-b + raiz_discriminante)/2*a;
  double raiz_2 = (-b - raiz_discriminante)/2*a;
 
  char i = raices_imaginarias < 0 ? 'i':'\0';
  char sign = '\0';
 
  cout<<"Las Raices son: " << endl;
 
  if(1 == fabs(raiz_1)) {
    sign = raiz_1 < 0 ? '-' : '\0';
    cout << "x_1: " << sign << i << endl;
  }else
    cout << "x_1: " << raiz_1 << i << endl;
 
  if(1 == fabs(raiz_2)) {
    sign = raiz_2 < 0 ? '-' : '\0';
    cout << "x_2: " << sign << i << endl;
  }else
    cout << "x_2: " << raiz_2 << i << endl;
 
  return EXIT_SUCCESS;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar