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

void printArray(int f[]) {
  int i;

 for (i = 0; i<10;i++) {   /* print array of factorials */
   printf("%d! = %d\n", i, f[i]);  /* factorial(i)*/
 }
 return;
}

int factorial(int i) { 
  int f = 1;  
  int j;

  if (i== 0) {return 1;}
  
  for (j = 1;j<=i;j++) {
     f = f*j;
  }
 
  return f;
}

int main() {

 int factorials[10];
 int i;
 int j, sum;
  
 for (i = 0; i<10;i++) {   /* set up array of factorials */
   factorials[i] = factorial(i);
 }
  printArray(factorials);

 do {  /* set up a Q&A exchange */
   printf("Enter a number: ");
   scanf("%d", &i);
   if (i>=0 && i<10) {
 /*     printf("%d! = %d\n", i, factorials[i]);  *//* factorial*/     
      sum = 0; 
      for(j = 0; j<=i;j++) {
        sum = sum+factorials[j];
       }
      printf("Sum of factorials = %d\n", sum);
   }
 }  while (i >=0 && i <10);

  return 0;
}