Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lucashuerga en 4 Marzo 2014, 21:35 pm



Título: Problema en programación en C
Publicado por: lucashuerga en 4 Marzo 2014, 21:35 pm
Hola les queria pedir un favor. Soy novato en el tema de la programacion y debo hacer un programa para la facultad para mañana. Lo intente hacer en el codeblocks pero me tira un error "integer constant is too large for long type". Necesito ayuda. Gracias...
Aca esta el programa:

#include <stdio.h>
#include <stdlib.h>
main()
{
double l, d, q, to, tf, t, x;
double v, a=(-1,922e-6),b=(1,8412779e-3), c=(5,887097476e-1),m=(62,855739543442);
printf("Escriba la longitud del conducto, luego presione Enter: \n");
scanf("%lf", &l);
printf("\nEscriba el diametro del conducto, luego presione Enter: \n");
scanf("%lf", &d);
printf("\nEscriba el caudal: \n");
scanf("%lf", &q);
printf("\nEscriba temperatura inicial del fluido, luego presione Enter: \n");
scanf("%lf", &to);
printf("\nEscriba temperatura final del fluido, luego presione Enter: \n");
scanf("%lf", &tf);
printf("\nEscriba la distancia en la que quiere calcular la temperatura, luego presione Enter: \n");
scanf("%lf", &x);
t=(to+((tf-to)/l)*x);
printf("\nLa temperatura es = %f \n", t);
v=((a*(t*t*t))+(b*(t*t))-(c*x)+m);
printf("\nLa viscosidad es = %ld \n", v);
system("pause");
return 0;
}


Título: Re: Problema en programación en C
Publicado por: El Benjo en 5 Marzo 2014, 02:49 am
El problema está en que la constante "62,8557395434422" es demasiado larga para el tipo long. Lo probé quitando dos tres cifras y funcionó.

¿Son indispensables esas últimas dos cifras para tu programa?

Si no es así, elimínalas.

EDITADO: En vez de usar la coma para el punto decimal, utiliza el punto. Así no te dará problemas al asignar la el número "62,8557395434422".


Título: Re: Problema en programación en C
Publicado por: engel lex en 5 Marzo 2014, 02:51 am
usa las etqieutas GeSHi cuando publiques codigo, eso lo hará mas legible, aunque veo que ya resolvieron, cuando publiques errores publicalos completo con su numero de linea, si no puede carecer de sentido...


Título: Re: Problema en programación en C
Publicado por: leosansan en 5 Marzo 2014, 06:09 am

Has caso a lo que marca el compilador en la parte inferior, los errores y warnings.

* main es de tipo int. Ya sé que lo sabes porque has puesto return 0 al final, pero al principio sería int main.

* Como te comentaron el signo para decimales, a no ser que uses un formato Spanish o similar, es el punto decimal. Con él puedes meter todas las cifras sin problemas, más siendo la variable de tipo double.

* Y hablando de double, en los últimos printf lo que procede es el formato %lf, ya que un tipo como %ld puede provocar salidas erróneas.



¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)