#include<stdio.h>
#include<math.h>

int main(){


 int i,fact;
 float add;
 float a=1;


 for(i=1,add=0,fact=1;i<=a;i++)
 {
  fact=fact*i;
  add=(double)1/fact+add;
  a++;
  
  if(a<0)
   break;
  }

   printf("%.8f",1+add);
}



출력을하면 1.#INF0000 이렇게 문자랑 섞여서 나와요. double써보라해서 써봤는데 출력이 아무것도 안되고 lf써도 안되네요 if(a>30) 이렇게 하면 값이 2.7182.... 이렇게 잘나오는데


왜 그런걸까요.. Dev C++ 5.11에 컴파일러는 TDM-GCC 4.9.2 64-bit Release입니다. 혹시 몰라서 컴파일러 한번씩 바꿔서 해봤는데 그대로네요.