Dev - C++ - da resultado Extraño

   
Vista:

da resultado Extraño

Publicado por Jose Luis (8 intervenciones) el 29/10/2017 17:42:09
Buenos dias, estoy siguiendo un curso de C++ y me ha tocado hacer un programa que resuelva ecuaciones de 2 grado.

Mi codigo es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdlib.h>
#include<iostream>
#include <math.h>
 
using namespace std;
 
int main(){
	float a,b,c,resultado_1=0,Resultado_2=0;
 
	cout<<"Introduzca el valor de a: "; cin>>a;
	cout<<"Introduzca el valor de b: "; cin>>b;
	cout<<"Introduzca el valor de c: "; cin>>c;
 
	resultado_1= (-b+sqrt(pow(b,2)-4*a*c))/(2*a);
	Resultado_2= (-b-sqrt(pow(b,2)-4*a*c))/(2*a);
 
	cout<<"\nEl primer resultado es: "<<resultado_1<<endl;
	cout<<"\El segundo resultado es: "<<Resultado_2<<endl;
 
 
 
	system("pause");
	return 0;
}

El resultado que me da como primero y segundo es nan por consola.

El que esta haciendo el curso ha puesto la solucion y e ejecutado su solucion y el error es el mismo.

¿cual es el error?.¿como es posible que salga como resultado la palabra nan si los resultados estan en una variable float?.gracias.
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

da resultado Extraño

Publicado por juan carlos (5 intervenciones) el 30/10/2017 03:36:35
Hola como estas, una funcion no siempre tiene raiz. ese puede ser el caso cuando pones los valores. proba con otros valores por ejemplo a=1 b=0 c=-2 . te debe dar la raiz de 2 en uno y - raiz de 2 en otro. si keres podes comprobar si tiene raiz primero haciendo lo que esta dentro de la raiz cuadrada sea >=0. Saludos
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

da resultado Extraño

Publicado por dario alderaan@ec-red.com (81 intervenciones) el 30/10/2017 05:45:17
Hola, te dejo este codigo a ver si te sirve.
Salu2.

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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    float a,b,c,d,x,y;
 
    cout << "Ingrese coeficiente a: ";
    cin >> a;
 
    while (a == 0) {
        cout << "Ingrese coeficiente a: ";
        cin >> a;
    }
 
    cout << "Ingrese coeficiente b: ";
    cin >> b;
    cout << "Ingrese coeficiente c: ";
    cin >> c;
 
    d = b*b-4*a*c;
    if (d > 0) {
        x = (-b+sqrt(d))/(2*a);
        y = (-b-sqrt(d))/(2*a);
        cout << "x1 = " << x << endl;
        cout << "x2 = " << y << endl;
    }
    else if (d == 0) {
        x = (-b)/(2*a);
        cout << "x1 = " << x;
    }
    else
        cout << "La ecuacion no tiene solucion";
 
    return 0;
}
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

da resultado Extraño

Publicado por Jose Luis (8 intervenciones) el 30/10/2017 11:20:21
Si me funciona. Por lo que veo el valor de D si sale negativo no se sigue con el calculo. He comprobado los resultados con una calculadora online y son ciertos. Gracias, pero sigo sin saber por que me salia nan como resultado cuando la variable era float. A partir de hoy hare los calculos por partes mejo se que que si no se vuelve loco jejjee. Gracias.
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