SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: jubilubi en Viernes 31 de Octubre de 2003, 00:47
-
signo_b=-1;
scanf("%e,%e,%e,%e",&a,&b,&c);
x1=((-b)+res_raiz)/(2*a);
x2=((-b)-res_raiz)/(2*a);
x3=signo_b*(-1*((abs(b)+(res_raiz))/(2*a)));
x4=c/(a*x3);
printf("%e,%e,%e,%e",x1,x2,x3,x4);
getch();
no me realiza todas las operaciones y se sale del programa sin imprimir algo en pantalla.
¿por que?
-
de que tipos son x1,x2,x3,x4??????????
-
long double.
el programa se ejecuta hasta la primera operacion (x1) y a partir de ahi se sale (presionando f7 me doy cuenta de esto). Utilizo el compilador de Turbo C++ 3.0 IDE.
-
¿tendra algo que ver las operaciones que se realizan?
si a x1, x2, x3 y x4 le asigno operaciones como estas:
x1=4+(5*2);
x2=x1+5;
x3=x2+3;
x4=x3+10;
entonces si las realiza y me imprime los resultados.
-
de que tipo son :
signo_1
a
b
c
son enteros?
"res_raiz" es long double?
bueno para despejar todas esa dudas no se si podrias poner el codigo completo???
estoy tratando de reconstruirlo para ver si a mi me produce el error.
Y por el momento me sale este ERROR:
scanf : floating point formats no linked
abnormal program termined
y no se por que sera.
-
al parecer ese error es por:
scanf("%e,%e,%e,%e",&a,&b,&c);
y deberia ser:
scanf("%e","%e","%e","%e",&a,&b,&c);
asi no da error.
-
Este es el codigo de mi programa:
void ecuaciones_cuadraticas()
{
//declaracion de variables
char letra;
int salir;
int signo_b=1; //signo de b
long double a,b,c; //datos de la ecuacion: axý-bx+c=0 alt+253=ý
long double raiz_neg=0; //bandera (si el resultado de la raiz es negativo)
long double res_raiz; //resultado de la raiz
long double x1,x2,x3,x4; //incognitas a encontrar
long double raiz_cuad; //bý-4ac
printf("Resolucion de ecuaciones cuadraticas de la forma axý + bx + c = 0");
printf("nintroduzca el valor de a: ");
scanf("%e",&a);
printf("nintroduzca el valor de b: ");
scanf("%e",&b);
printf("nintroduzca el valor de c: ");
scanf("%e",&c);
if (b<0) //si b<0...
{
signo_b=-1; //...entonces en el signo de b es negativo
}
raiz_cuad=(b*b)-(4*(a*c));
if (raiz_cuad<0) //si el resultado de bý-4ac es < 0...
{
raiz_cuad=abs(raiz_cuad); //valor absoluto de (b*b)-4ac
signo_b=1; //...entonces bandera = 1 "bý-4ac es negativo"
}
res_raiz=sqrt(raiz_cuad);
x1=((-b)+res_raiz)/(2*a);
x2=((-b)-res_raiz)/(2*a);
x3=signo_b*(-1*((abs(b)+(res_raiz))/(2*a)));
x4=c/(a*x3);
printf("nx1 = %e",x1);
printf("nx2 = %e",x2);
printf("nx3 = %e",x3);
printf("nx4 = %e",x4);
if (raiz_neg==1) //si bandera = 1
{
printf("nNOTA: el resultado de la raiz es negativo");
}
}
-
al moento de leer a,b o c no hace una buena lectura?, pero depues trabaja bien
-
No. Lee bien las variables. El problema es al realizar las operaciones para x1, x2, x3 y x4. Solamente realiza la operacion para x1 y se sale del programa.
-
Estoy trabajando en Borlandc++ 3.11
al ingrsar valores sencillos como a=1, b=4,c=4; para verificar primero si funciona bien con valores pequeños note que arrojaba valores muy extraños(pero corria todo), despues hice correr paso paso y sucedia que no lee bien a,b y c, no se por que sucede esto pero siempre hace bien el programa osea lo corre y no se salta ni se sale hasta terminar,dime que valores asignas a : a=?,b=? y c=?