Following is my program for calculating the sum of exponential series upto n terms:

e = 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + 1/5!+....1/n!

Code:
#include<stdio.h>
int main()
{
  int n,i,p=1;
  float sum=1.0,fact=1.0;
  printf("enter the number of terms");
  scanf("the number of terms are %d",&n);
  for(i=1;i<=n;i++)
  {
                   while(p<=i)
                   {
                   fact*=p;
                   p++;
                   }
  sum+=(1.0/fact);
  }
  printf("the sum is %f",sum);
  system("pause");
  return 0;
}
While executing the code in dev-C++, the program stops executing and goes into an infinite loop after entering 'n'. Kindly help.