[C con Clase] Resultado no esperado.

Reignerok reignerok en gmail.com
Mar Sep 21 18:44:31 CEST 2010


Supongo que necesitarás la diferencia entre ambos números. Podrías hacer una
función que calculara el valor absoluto, de forma que se te convierta en
positivo y ya no haya problema.

Un saludo.

El 21 de septiembre de 2010 18:34, Antonio Félix Enríquez <
antoniofelix91 en gmail.com> escribió:

>  Buenas, pues podría ser por eso, yo realmente no lo hago así, pero como
> viene con ese ejemplo y con esa fórmula en el libro, vamos en bachillerato
> no te enseñan de esa forma :P.
>
> Muchas gracias a todos, un saludo ^^.
>
> Josu Diaz de Arcaya escribió:
>
> sospecho que es porque no se puede hacer la raiz de un numero negativo.
>
> Si ingresas 6 3 2 por ej, devuelve nan porque el resultado de (aux -l1) es
> negativo y por consiguiente haces la raiz de un numero negativo
>
> Curiosa forma de calcular el area de un triangulo...
>
> On Tue, 2010-09-21 at 17:56 +0200, Reignerok wrote:
>
> NaN significa Not a Number. Debe ser que en alguna operación estás
> cometiendo un error. ¿Has revisado las operaciones a mano?
>
>  El 21 de septiembre de 2010 17:51, Antonio Félix Enríquez <
> antoniofelix91 en gmail.com> escribió:
>
>  Hola, estoy aprendiendo a programar en C con algunos libros que me he
> comprado, ahora mismo estoy leyendo Fundamentos de programación: Piensa en
> C, me ha surgido un problema y es el siguiente:
>
> El código:
>
> #include <stdio.h>
> #include <math.h>
>
> /* Programa para el cálculo del área de un triángulo.
> El programa, al recibir los tres laterales de un triángulo calcula su
> área*/
>
> void main(void){
>
> float la1=0, la2=0, la3=0, aux=0, Are=0;
>
> printf("Ingrese los tres laterales de un triángulo: ");
> scanf("%f %f %f", &la1, &la2, &la3);
> aux = (la1 + la2 + la3) / 2;
> Are = sqrt( aux * (aux - la1) * (aux - la2) * (aux - la3));
> printf("\nEl área es %f\n", Are);
> }
>
> El problema es que me produce un resultado algo raro a mi parecer, pues en
> vez de imprimir el área de un triángulo imprime casi siempre *nan*lo cual
> me parece bastante raro.
>
>
> Compilo con gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48) con la siguiente
> orden, gcc -Wall -lm codigo.c -o calcular_area_triangulo.
>
> Un saludo y gracias.
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.nethttp://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> ------------------------------
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.nethttp://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100921/0ab0517a/attachment-0001.html>


Más información sobre la lista de distribución Cconclase