-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
questions wrote:
Today when I build a program,the compiler tells me there is no
error,but when I run it ,it shows " 1.#INF00000",what's the
meaning??????The program is as follows:
#include<stdio.h>
int main()
{ int x,y;
int w=0;
long double z=0;
for(x=0;x<=10;x++)
{if(x==0)
{w=1;}
else
{for(y=1;y<=x;y++)
{w*=y;} }
z+=(float)1/w;}
printf("%.9Lf",z);
return 0;}
It looks like "int" is too small to fit the value you assign to w. You
should check which type is sufficient (limits.h). According to C++
standard the largest integer type is unsigned long int and the largest
floating point type is long double. In fact, the second one was enough
to made this code working on my implementation.
I'd suggest you to format your code in an easier to read way.
Pawel Dziepak
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora -
http://enigmail.mozdev.org
iEYEARECAAYFAkkVezgACgkQPFW+cUiIHNpFuACdFenI7FQvVz OB5VcK1TWfQIy8
uOsAnAsW8j1HozMc4oaxu5JAk4fkSftA
=pYqQ
-----END PGP SIGNATURE-----